diff options
author | Nathan Fontenot <nfont@linux.vnet.ibm.com> | 2017-05-26 17:31:00 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-26 22:32:46 +0300 |
commit | 28cde751021abb16458b858da3403bd7c511c0d7 (patch) | |
tree | 7a685aef2d2d406a01de619d0c9891a3d34cc979 | |
parent | 152ce47dc48280182ab58539a721dadb3d7a8575 (diff) | |
download | linux-28cde751021abb16458b858da3403bd7c511c0d7.tar.xz |
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>
-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; |