| From 2a5d50f9ed50d4d93a9d295d0d0f9f35a410b408 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 3 Sep 2018 11:21:47 +0100 |
| Subject: net: hns3: Fix for multicast failure |
| |
| From: Huazhong Tan <tanhuazhong@huawei.com> |
| |
| [ Upstream commit fd5f9da3f6583046215d614a87792b46e55785e2 ] |
| |
| When the lower 24 bits of the IPV6 link-local addresses at both |
| ends are the same, the multicast MAC address for Neigbour Discovery |
| is the same. The multicast for Neigbour Discovery will fail. |
| |
| This patch fixes it by including the bonding uplink port in the |
| multicast group. |
| |
| Fixes: 46a3df9f9718("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support") |
| Signed-off-by: Huazhong Tan <tanhuazhong@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 <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c |
| index 89ca69fa2b97b..44d0cb3f73a44 100644 |
| --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c |
| +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c |
| @@ -4374,7 +4374,7 @@ int hclge_add_mc_addr_common(struct hclge_vport *vport, |
| hnae3_set_bit(req.flags, HCLGE_MAC_VLAN_BIT0_EN_B, 1); |
| hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT0_EN_B, 0); |
| hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT1_EN_B, 1); |
| - hnae3_set_bit(req.mc_mac_en, HCLGE_MAC_VLAN_BIT0_EN_B, 0); |
| + hnae3_set_bit(req.mc_mac_en, HCLGE_MAC_VLAN_BIT0_EN_B, 1); |
| hclge_prepare_mac_addr(&req, addr); |
| status = hclge_lookup_mac_vlan_tbl(vport, &req, desc, true); |
| if (!status) { |
| @@ -4441,7 +4441,7 @@ int hclge_rm_mc_addr_common(struct hclge_vport *vport, |
| hnae3_set_bit(req.flags, HCLGE_MAC_VLAN_BIT0_EN_B, 1); |
| hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT0_EN_B, 0); |
| hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT1_EN_B, 1); |
| - hnae3_set_bit(req.mc_mac_en, HCLGE_MAC_VLAN_BIT0_EN_B, 0); |
| + hnae3_set_bit(req.mc_mac_en, HCLGE_MAC_VLAN_BIT0_EN_B, 1); |
| hclge_prepare_mac_addr(&req, addr); |
| status = hclge_lookup_mac_vlan_tbl(vport, &req, desc, true); |
| if (!status) { |
| -- |
| 2.20.1 |
| |