Re: [PATCH net-next] ibmvnic: Return from ibmvnic_resume if not in VNIC_OPEN state

2017-06-20 Thread David Miller
From: John Allen 
Date: 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

2017-06-20 Thread Nathan Fontenot


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 Allen 

Reviewed-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

2017-06-19 Thread John Allen
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,