]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: hns3: Fix for mac pause not disable in pfc mode
authorYunsheng Lin <linyunsheng@huawei.com>
Fri, 6 Jul 2018 10:27:56 +0000 (11:27 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Oct 2018 23:59:03 +0000 (16:59 -0700)
[ Upstream commit 6d0ec65cb5810f9bf08671be008785bb8c84d39f ]

When pfc pause mode is enable, the mac pause mode need to be
disabled, otherwise the pfc pause packet will not be sent when
congestion happens.

This patch fixes by disabling the mac pause when pfc pause is
enabled.

Fixes: 848440544b41 ("net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver")
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c

index 262c125f81375a8f91f9bccc899144ad01f2605a..f027fceea548c04ccd9bad7800f77c226b5328c1 100644 (file)
@@ -1223,6 +1223,10 @@ static int hclge_mac_pause_setup_hw(struct hclge_dev *hdev)
                tx_en = true;
                rx_en = true;
                break;
+       case HCLGE_FC_PFC:
+               tx_en = false;
+               rx_en = false;
+               break;
        default:
                tx_en = true;
                rx_en = true;
@@ -1240,8 +1244,9 @@ int hclge_pause_setup_hw(struct hclge_dev *hdev)
        if (ret)
                return ret;
 
-       if (hdev->tm_info.fc_mode != HCLGE_FC_PFC)
-               return hclge_mac_pause_setup_hw(hdev);
+       ret = hclge_mac_pause_setup_hw(hdev);
+       if (ret)
+               return ret;
 
        /* Only DCB-supported dev supports qset back pressure and pfc cmd */
        if (!hnae3_dev_dcb_supported(hdev))