diff options
author | Nathan Fontenot <nfont@linux.vnet.ibm.com> | 2017-05-26 16:31:00 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-26 21:32:46 +0200 |
commit | 28cde751021abb16458b858da3403bd7c511c0d7 (patch) | |
tree | 7a685aef2d2d406a01de619d0c9891a3d34cc979 /drivers/net/ethernet/ibm | |
parent | ibmvnic: Check adapter state during ibmvnic_poll (diff) | |
download | linux-28cde751021abb16458b858da3403bd7c511c0d7.tar.xz linux-28cde751021abb16458b858da3403bd7c511c0d7.zip |
ibmvnic: Reset the CRQ queue during driver reset
When a driver reset operation occurs there is not a need to release
the CRQ resources and re-allocate them. Instead a reset of the CRQ
will suffice.
Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ibm')
-rw-r--r-- | drivers/net/ethernet/ibm/ibmvnic.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 760352f7f98d..b9b0c693ce01 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -1260,7 +1260,6 @@ static int do_reset(struct ibmvnic_adapter *adapter, release_resources(adapter); release_sub_crqs(adapter); - release_crq_queue(adapter); rc = ibmvnic_init(adapter); if (rc) @@ -3517,7 +3516,14 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter) unsigned long timeout = msecs_to_jiffies(30000); int rc; - rc = init_crq_queue(adapter); + if (adapter->resetting) { + rc = ibmvnic_reset_crq(adapter); + if (!rc) + rc = vio_enable_interrupts(adapter->vdev); + } else { + rc = init_crq_queue(adapter); + } + if (rc) { dev_err(dev, "Couldn't initialize crq. rc=%d\n", rc); return rc; |