lkml.org 
[lkml]   [2021]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 081/167] bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
    Date
    From: Michael Chan <michael.chan@broadcom.com>

    [ 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: 230d1f0de754 ("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>
    ---
    drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    index f003f08de167..dee6bcfe2fe2 100644
    --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    @@ -11480,6 +11480,10 @@ static void bnxt_fw_reset_task(struct work_struct *work)
    }
    bp->fw_reset_timestamp = jiffies;
    rtnl_lock();
    + if (test_bit(BNXT_STATE_ABORT_ERR, &bp->state)) {
    + rtnl_unlock();
    + goto fw_reset_abort;
    + }
    bnxt_fw_reset_close(bp);
    if (bp->fw_cap & BNXT_FW_CAP_ERR_RECOVER_RELOAD) {
    bp->fw_reset_state = BNXT_FW_RESET_STATE_POLL_FW_DOWN;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-26 18:44    [W:5.839 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site