Patch "net: hns3: fix bug when PF set the duplicate MAC address for VFs" has been added to the 5.15-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

    net: hns3: fix bug when PF set the duplicate MAC address for VFs

to the 5.15-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:
     net-hns3-fix-bug-when-pf-set-the-duplicate-mac-addre.patch
and it can be found in the queue-5.15 subdirectory.

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



commit a23a6de25d27ff683ec0b1661c8be32be977b73a
Author: Jian Shen <shenjian15@xxxxxxxxxx>
Date:   Thu Mar 24 20:54:47 2022 +0800

    net: hns3: fix bug when PF set the duplicate MAC address for VFs
    
    [ Upstream commit ccb18f05535c96d26e2d559d402acb87700fc5a7 ]
    
    If the MAC address A is configured to vport A and then vport B. The MAC
    address of vport A in the hardware becomes invalid. If the address of
    vport A is changed to MAC address B, the driver needs to delete the MAC
    address A of vport A. Due to the MAC address A of vport A has become
    invalid in the hardware entry, so "-ENOENT" is returned. In this case, the
    "used_umv_size" value recorded in driver is not updated. As a result, the
    MAC entry status of the software is inconsistent with that of the hardware.
    
    Therefore, the driver updates the umv size even if the MAC entry cannot be
    found. Ensure that the software and hardware status is consistent.
    
    Fixes: ee4bcd3b7ae4 ("net: hns3: refactor the MAC address configure")
    Signed-off-by: Jian Shen <shenjian15@xxxxxxxxxx>
    Signed-off-by: Guangbin Huang <huangguangbin2@xxxxxxxxxx>
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index 66c407d0d507..b78de80d6c05 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -8714,12 +8714,11 @@ int hclge_rm_uc_addr_common(struct hclge_vport *vport,
 	hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT0_EN_B, 0);
 	hclge_prepare_mac_addr(&req, addr, false);
 	ret = hclge_remove_mac_vlan_tbl(vport, &req);
-	if (!ret) {
+	if (!ret || ret == -ENOENT) {
 		mutex_lock(&hdev->vport_lock);
 		hclge_update_umv_space(vport, true);
 		mutex_unlock(&hdev->vport_lock);
-	} else if (ret == -ENOENT) {
-		ret = 0;
+		return 0;
 	}
 
 	return ret;



[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