aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ibm/ibmvnic.c
diff options
context:
space:
mode:
authorJohn Allen <jallen@linux.vnet.ibm.com>2017-07-24 14:26:06 -0400
committerDavid S. Miller <davem@davemloft.net>2017-07-24 20:40:10 -0400
commita248878d7a1d35ea3bb874891997144ad16d7c27 (patch)
tree3b620c8c4b406795037a9cb22d366e76e4c4da09 /drivers/net/ethernet/ibm/ibmvnic.c
parent01c49884ddff7a6efd56e7b44ba0d6da22fb2ba4 (diff)
ibmvnic: Check for transport event on driver resume
On resume, the ibmvnic driver will fail to resume normal operation. The main crq gets closed on suspend by the vnic server and doesn't get reopened again as the interrupt for the transport event that would reset the main crq comes in after the driver has been suspended. This patch resolves the issue by removing the calls to kick the receive interrupts handlers and instead directly invoking the main crq interrupt handler. This will ensure that we see the transport event necessary to properly resume the driver. Signed-off-by: John Allen <jallen@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ibm/ibmvnic.c')
-rw-r--r--drivers/net/ethernet/ibm/ibmvnic.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
index a3e694679635..9d8af464dc44 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -3851,10 +3851,7 @@ static int ibmvnic_resume(struct device *dev)
3851 if (adapter->state != VNIC_OPEN) 3851 if (adapter->state != VNIC_OPEN)
3852 return 0; 3852 return 0;
3853 3853
3854 /* kick the interrupt handlers just in case we lost an interrupt */ 3854 tasklet_schedule(&adapter->tasklet);
3855 for (i = 0; i < adapter->req_rx_queues; i++)
3856 ibmvnic_interrupt_rx(adapter->rx_scrq[i]->irq,
3857 adapter->rx_scrq[i]);
3858 3855
3859 return 0; 3856 return 0;
3860} 3857}