net-next/hinic:fix a bug in set mac address
[ Upstream commit 9ea72dc9430306b77c73a8a21beb51437cde1d6d ] In add_mac_addr(), if the MAC address is a muliticast address, it will not be set, which causes the network card fail to receive the multicast packet. This patch fixes this bug. Signed-off-by: Xue Chaojing <xuechaojing@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
62a176cb87
commit
f306329dca
@ -598,9 +598,6 @@ static int add_mac_addr(struct net_device *netdev, const u8 *addr)
|
||||
u16 vid = 0;
|
||||
int err;
|
||||
|
||||
if (!is_valid_ether_addr(addr))
|
||||
return -EADDRNOTAVAIL;
|
||||
|
||||
netif_info(nic_dev, drv, netdev, "set mac addr = %02x %02x %02x %02x %02x %02x\n",
|
||||
addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
|
||||
|
||||
@ -724,6 +721,7 @@ static void set_rx_mode(struct work_struct *work)
|
||||
{
|
||||
struct hinic_rx_mode_work *rx_mode_work = work_to_rx_mode_work(work);
|
||||
struct hinic_dev *nic_dev = rx_mode_work_to_nic_dev(rx_mode_work);
|
||||
struct netdev_hw_addr *ha;
|
||||
|
||||
netif_info(nic_dev, drv, nic_dev->netdev, "set rx mode work\n");
|
||||
|
||||
@ -731,6 +729,9 @@ static void set_rx_mode(struct work_struct *work)
|
||||
|
||||
__dev_uc_sync(nic_dev->netdev, add_mac_addr, remove_mac_addr);
|
||||
__dev_mc_sync(nic_dev->netdev, add_mac_addr, remove_mac_addr);
|
||||
|
||||
netdev_for_each_mc_addr(ha, nic_dev->netdev)
|
||||
add_mac_addr(nic_dev->netdev, ha->addr);
|
||||
}
|
||||
|
||||
static void hinic_set_rx_mode(struct net_device *netdev)
|
||||
|
Loading…
x
Reference in New Issue
Block a user