diff options
author | John Allen <jallen@linux.vnet.ibm.com> | 2017-10-26 17:24:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-27 11:23:58 -0400 |
commit | 2a1bf51111975846f412f47449edefdf6fa17ee4 (patch) | |
tree | 50ef921d7833a996a9690f7f30ad7521e9a551e7 /drivers/net/ethernet/ibm/ibmvnic.c | |
parent | c26eba03e4073bd32ef6c0ea2ba2a3ff5eed11da (diff) |
ibmvnic: Fix failover error path for non-fatal resets
For all non-fatal reset conditions, the hypervisor will send a failover when
we attempt to initialize the crq and the vnic client is expected to handle
that failover instead of the existing non-fatal reset. To handle this, we
need to return from init with a return code that indicates that we have hit
this case.
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.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 3d0280196fdc..d0cff2807d0b 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c | |||
@@ -1507,7 +1507,7 @@ static int do_reset(struct ibmvnic_adapter *adapter, | |||
1507 | 1507 | ||
1508 | rc = ibmvnic_init(adapter); | 1508 | rc = ibmvnic_init(adapter); |
1509 | if (rc) | 1509 | if (rc) |
1510 | return 0; | 1510 | return IBMVNIC_INIT_FAILED; |
1511 | 1511 | ||
1512 | /* If the adapter was in PROBE state prior to the reset, | 1512 | /* If the adapter was in PROBE state prior to the reset, |
1513 | * exit here. | 1513 | * exit here. |
@@ -1610,7 +1610,7 @@ static void __ibmvnic_reset(struct work_struct *work) | |||
1610 | while (rwi) { | 1610 | while (rwi) { |
1611 | rc = do_reset(adapter, rwi, reset_state); | 1611 | rc = do_reset(adapter, rwi, reset_state); |
1612 | kfree(rwi); | 1612 | kfree(rwi); |
1613 | if (rc) | 1613 | if (rc && rc != IBMVNIC_INIT_FAILED) |
1614 | break; | 1614 | break; |
1615 | 1615 | ||
1616 | rwi = get_next_rwi(adapter); | 1616 | rwi = get_next_rwi(adapter); |