| From 3db8f94b0367d56e6513894bf82e3291eb1b1668 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 18 Jun 2020 15:24:13 -0400 |
| Subject: ibmvnic: continue to init in CRQ reset returns H_CLOSED |
| |
| From: Dany Madden <drt@linux.ibm.com> |
| |
| [ Upstream commit 8b40eb73509f5704a0e8cd25de0163876299f1a7 ] |
| |
| Continue the reset path when partner adapter is not ready or H_CLOSED is |
| returned from reset crq. This patch allows the CRQ init to proceed to |
| establish a valid CRQ for traffic to flow after reset. |
| |
| Signed-off-by: Dany Madden <drt@linux.ibm.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/ibm/ibmvnic.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c |
| index 4f503b9a674c4..d585973606990 100644 |
| --- a/drivers/net/ethernet/ibm/ibmvnic.c |
| +++ b/drivers/net/ethernet/ibm/ibmvnic.c |
| @@ -1878,13 +1878,18 @@ static int do_reset(struct ibmvnic_adapter *adapter, |
| release_sub_crqs(adapter, 1); |
| } else { |
| rc = ibmvnic_reset_crq(adapter); |
| - if (!rc) |
| + if (rc == H_CLOSED || rc == H_SUCCESS) { |
| rc = vio_enable_interrupts(adapter->vdev); |
| + if (rc) |
| + netdev_err(adapter->netdev, |
| + "Reset failed to enable interrupts. rc=%d\n", |
| + rc); |
| + } |
| } |
| |
| if (rc) { |
| netdev_err(adapter->netdev, |
| - "Couldn't initialize crq. rc=%d\n", rc); |
| + "Reset couldn't initialize crq. rc=%d\n", rc); |
| goto out; |
| } |
| |
| -- |
| 2.25.1 |
| |