Re: [PATCH net-next] ibmvnic: Return from ibmvnic_resume if not in VNIC_OPEN state
From: John AllenDate: Mon, 19 Jun 2017 11:27:53 -0500 > If the ibmvnic driver is not in the VNIC_OPEN state, return from > ibmvnic_resume callback. If we are not in the VNIC_OPEN state, interrupts > may not be initialized and directly calling the interrupt handler will > cause a crash. > > Signed-off-by: John Allen Applied.
Re: [PATCH net-next] ibmvnic: Return from ibmvnic_resume if not in VNIC_OPEN state
On 06/19/2017 11:27 AM, John Allen wrote: > If the ibmvnic driver is not in the VNIC_OPEN state, return from > ibmvnic_resume callback. If we are not in the VNIC_OPEN state, interrupts > may not be initialized and directly calling the interrupt handler will > cause a crash. > > Signed-off-by: John AllenReviewed-by: Nathan Fontenot > --- > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c > b/drivers/net/ethernet/ibm/ibmvnic.c > index 722daf5..0135095 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -3859,6 +3859,9 @@ static int ibmvnic_resume(struct device *dev) > struct ibmvnic_adapter *adapter = netdev_priv(netdev); > int i; > > + if (adapter->state != VNIC_OPEN) > + return 0; > + > /* kick the interrupt handlers just in case we lost an interrupt */ > for (i = 0; i < adapter->req_rx_queues; i++) > ibmvnic_interrupt_rx(adapter->rx_scrq[i]->irq, >
[PATCH net-next] ibmvnic: Return from ibmvnic_resume if not in VNIC_OPEN state
If the ibmvnic driver is not in the VNIC_OPEN state, return from ibmvnic_resume callback. If we are not in the VNIC_OPEN state, interrupts may not be initialized and directly calling the interrupt handler will cause a crash. Signed-off-by: John Allen--- diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 722daf5..0135095 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -3859,6 +3859,9 @@ static int ibmvnic_resume(struct device *dev) struct ibmvnic_adapter *adapter = netdev_priv(netdev); int i; + if (adapter->state != VNIC_OPEN) + return 0; + /* kick the interrupt handlers just in case we lost an interrupt */ for (i = 0; i < adapter->req_rx_queues; i++) ibmvnic_interrupt_rx(adapter->rx_scrq[i]->irq,