Patch "bnxt_en: Fix the resource check condition for RSS contexts" has been added to the 6.9-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

    bnxt_en: Fix the resource check condition for RSS contexts

to the 6.9-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:
     bnxt_en-fix-the-resource-check-condition-for-rss-con.patch
and it can be found in the queue-6.9 subdirectory.

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



commit 00860914e52309ed5a5dd515c70481ff50f7b07e
Author: Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx>
Date:   Wed Jul 3 11:01:12 2024 -0700

    bnxt_en: Fix the resource check condition for RSS contexts
    
    [ Upstream commit 5d350dc3429b3eb6f2b1b8ccb78ed4ec6c4d4a4f ]
    
    While creating a new RSS context, bnxt_rfs_capable() currently
    makes a strict check to see if the required VNICs are already
    available.  If the current VNICs are not what is required,
    either too many or not enough, it will call the firmware to
    reserve the exact number required.
    
    There is a bug in the firmware when the driver tries to
    relinquish some reserved VNICs and RSS contexts.  It will
    cause the default VNIC to lose its RSS configuration and
    cause receive packets to be placed incorrectly.
    
    Workaround this problem by skipping the resource reduction.
    The driver will not reduce the VNIC and RSS context reservations
    when a context is deleted.  The resources will be available for
    use when new contexts are created later.
    
    Potentially, this workaround can cause us to run out of VNIC
    and RSS contexts if there are a lot of VF functions creating
    and deleting RSS contexts.  In the future, we will conditionally
    disable this workaround when the firmware fix is available.
    
    Fixes: 438ba39b25fe ("bnxt_en: Improve RSS context reservation infrastructure")
    Reported-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Link: https://lore.kernel.org/netdev/20240625010210.2002310-1-kuba@xxxxxxxxxx/
    Reviewed-by: Andy Gospodarek <andrew.gospodarek@xxxxxxxxxxxx>
    Signed-off-by: Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx>
    Signed-off-by: Michael Chan <michael.chan@xxxxxxxxxxxx>
    Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
    Link: https://patch.msgid.link/20240703180112.78590-1-michael.chan@xxxxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 0fab62a56f3b3..2b7936b3fb3ef 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -12436,7 +12436,11 @@ static bool bnxt_rfs_capable(struct bnxt *bp)
 	if (!BNXT_NEW_RM(bp))
 		return true;
 
-	if (hwr.vnic == bp->hw_resc.resv_vnics &&
+	/* Do not reduce VNIC and RSS ctx reservations.  There is a FW
+	 * issue that will mess up the default VNIC if we reduce the
+	 * reservations.
+	 */
+	if (hwr.vnic <= bp->hw_resc.resv_vnics &&
 	    hwr.rss_ctx <= bp->hw_resc.resv_rsscos_ctxs)
 		return true;
 




[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