diff options
author | Nathan Fontenot <nfont@linux.vnet.ibm.com> | 2017-05-26 10:31:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-26 15:32:46 -0400 |
commit | 28cde751021abb16458b858da3403bd7c511c0d7 (patch) | |
tree | 7a685aef2d2d406a01de619d0c9891a3d34cc979 /drivers/net/ethernet/ibm/ibmvnic.c | |
parent | 152ce47dc48280182ab58539a721dadb3d7a8575 (diff) |
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/ibmvnic.c')
-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, | |||
1260 | 1260 | ||
1261 | release_resources(adapter); | 1261 | release_resources(adapter); |
1262 | release_sub_crqs(adapter); | 1262 | release_sub_crqs(adapter); |
1263 | release_crq_queue(adapter); | ||
1264 | 1263 | ||
1265 | rc = ibmvnic_init(adapter); | 1264 | rc = ibmvnic_init(adapter); |
1266 | if (rc) | 1265 | if (rc) |
@@ -3517,7 +3516,14 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter) | |||
3517 | unsigned long timeout = msecs_to_jiffies(30000); | 3516 | unsigned long timeout = msecs_to_jiffies(30000); |
3518 | int rc; | 3517 | int rc; |
3519 | 3518 | ||
3520 | rc = init_crq_queue(adapter); | 3519 | if (adapter->resetting) { |
3520 | rc = ibmvnic_reset_crq(adapter); | ||
3521 | if (!rc) | ||
3522 | rc = vio_enable_interrupts(adapter->vdev); | ||
3523 | } else { | ||
3524 | rc = init_crq_queue(adapter); | ||
3525 | } | ||
3526 | |||
3521 | if (rc) { | 3527 | if (rc) { |
3522 | dev_err(dev, "Couldn't initialize crq. rc=%d\n", rc); | 3528 | dev_err(dev, "Couldn't initialize crq. rc=%d\n", rc); |
3523 | return rc; | 3529 | return rc; |