bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
[ Upstream commit 6cd657cb3ee6f4de57e635b126ffbe0e51d00f1a ]
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: 230d1f0de7
("bnxt_en: Handle firmware reset.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
927370485e
commit
4f7da0f97b
@@ -11480,6 +11480,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;
|
||||||
|
Reference in New Issue
Block a user