Patch "iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     iavf-fix-for-the-false-positive-asq-arq-errors-while.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e7f4bf06104d8390064cd6e16a557192c430f434
Author: Surabhi Boob <surabhi.boob@xxxxxxxxx>
Date:   Fri Jun 4 09:48:59 2021 -0700

    iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
    
    [ Upstream commit 321421b57a12e933f92b228e0e6d0b2c6541f41d ]
    
    While issuing VF Reset from the guest OS, the VF driver prints
    logs about critical / Overflow error detection. This is not an
    actual error since the VF_MBX_ARQLEN register is set to all FF's
    for a short period of time and the VF would catch the bits set if
    it was reading the register during that spike of time.
    This patch introduces an additional check to ignore this condition
    since the VF is in reset.
    
    Fixes: 19b73d8efaa4 ("i40evf: Add additional check for reset")
    Signed-off-by: Surabhi Boob <surabhi.boob@xxxxxxxxx>
    Tested-by: Tony Brelinski <tony.brelinski@xxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c
index 6f6cd013eef3e..484c2a6f1625d 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -2341,7 +2341,7 @@ static void iavf_adminq_task(struct work_struct *work)
 
 	/* check for error indications */
 	val = rd32(hw, hw->aq.arq.len);
-	if (val == 0xdeadbeef) /* indicates device in reset */
+	if (val == 0xdeadbeef || val == 0xffffffff) /* device in reset */
 		goto freedom;
 	oldval = val;
 	if (val & IAVF_VF_ARQLEN1_ARQVFE_MASK) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux