summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShai Malin <smalin@marvell.com>2021-08-01 13:23:40 +0300
committerDavid S. Miller <davem@davemloft.net>2021-08-03 13:45:03 +0300
commit995c3d49bd71605c8179e1e129773e37b2da9b20 (patch)
tree2120730bcfd08ceebeb4b1ff4e18d91cf1c22071
parent07e1d6b3e0203a47128dd7d490e73ebe6dae7c4d (diff)
downloadlinux-995c3d49bd71605c8179e1e129773e37b2da9b20.tar.xz
qed: Avoid db_recovery during recovery
Avoid calling the qed doorbell recovery - qed_db_rec_handler() during device recovery. Signed-off-by: Ariel Elior <aelior@marvell.com> Signed-off-by: Shai Malin <smalin@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index aa48b1b7eddc..6871d892eabf 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -1215,6 +1215,10 @@ static void qed_slowpath_task(struct work_struct *work)
if (test_and_clear_bit(QED_SLOWPATH_PERIODIC_DB_REC,
&hwfn->slowpath_task_flags)) {
+ /* skip qed_db_rec_handler during recovery/unload */
+ if (hwfn->cdev->recov_in_prog || !hwfn->slowpath_wq_active)
+ goto out;
+
qed_db_rec_handler(hwfn, ptt);
if (hwfn->periodic_db_rec_count--)
qed_slowpath_delayed_work(hwfn,
@@ -1222,6 +1226,7 @@ static void qed_slowpath_task(struct work_struct *work)
QED_PERIODIC_DB_REC_INTERVAL);
}
+out:
qed_ptt_release(hwfn, ptt);
}