From: Sukadev Bhattiprolu <suka...@linux.ibm.com>

If auto-priority failover is enabled, the backing device needs time
to settle if hard resetting fails for any reason. Add a delay of 60
seconds before retrying the hard-reset.

Fixes: 2770a7984db5 ("ibmvnic: Introduce hard reset recovery")
Signed-off-by: Sukadev Bhattiprolu <suka...@linux.ibm.com>
---
 drivers/net/ethernet/ibm/ibmvnic.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/ethernet/ibm/ibmvnic.c 
b/drivers/net/ethernet/ibm/ibmvnic.c
index ff474a790181..e2f9b0e9dea8 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -2242,6 +2242,14 @@ static void __ibmvnic_reset(struct work_struct *work)
                                rc = do_hard_reset(adapter, rwi, reset_state);
                                rtnl_unlock();
                        }
+                       if (rc) {
+                               /* give backing device time to settle down */
+                               netdev_dbg(adapter->netdev,
+                                          "[S:%d] Hard reset failed, waiting 
60 secs\n",
+                                          adapter->state);
+                               set_current_state(TASK_UNINTERRUPTIBLE);
+                               schedule_timeout(60 * HZ);
+                       }
                } else if (!(rwi->reset_reason == VNIC_RESET_FATAL &&
                                adapter->from_passive_init)) {
                        rc = do_reset(adapter, rwi, reset_state);
-- 
2.26.2

Reply via email to