Commit 6cd657cb authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()

In the BNXT_FW_RESET_STATE_POLL_VF state in bnxt_fw_reset_task() after all
VFs have unregistered, we need to check for BNXT_STATE_ABORT_ERR after
we acquire the rtnl_lock.  If the flag is set, we need to abort.

Fixes: 230d1f0d ("bnxt_en: Handle firmware reset.")
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2c9f046b
...@@ -11992,6 +11992,10 @@ static void bnxt_fw_reset_task(struct work_struct *work) ...@@ -11992,6 +11992,10 @@ static void bnxt_fw_reset_task(struct work_struct *work)
} }
bp->fw_reset_timestamp = jiffies; bp->fw_reset_timestamp = jiffies;
rtnl_lock(); rtnl_lock();
if (test_bit(BNXT_STATE_ABORT_ERR, &bp->state)) {
rtnl_unlock();
goto fw_reset_abort;
}
bnxt_fw_reset_close(bp); bnxt_fw_reset_close(bp);
if (bp->fw_cap & BNXT_FW_CAP_ERR_RECOVER_RELOAD) { if (bp->fw_cap & BNXT_FW_CAP_ERR_RECOVER_RELOAD) {
bp->fw_reset_state = BNXT_FW_RESET_STATE_POLL_FW_DOWN; bp->fw_reset_state = BNXT_FW_RESET_STATE_POLL_FW_DOWN;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment