diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index bd8332cbf619..03fe7cde2e61 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -1540,6 +1540,13 @@ int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value) | |||
1540 | 1540 | ||
1541 | req->if_flags_mask = req->if_flags = | 1541 | req->if_flags_mask = req->if_flags = |
1542 | cpu_to_le32(BE_IF_FLAGS_MULTICAST); | 1542 | cpu_to_le32(BE_IF_FLAGS_MULTICAST); |
1543 | |||
1544 | /* Reset mcast promisc mode if already set by setting mask | ||
1545 | * and not setting flags field | ||
1546 | */ | ||
1547 | req->if_flags_mask |= | ||
1548 | cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS); | ||
1549 | |||
1543 | req->mcast_num = cpu_to_le32(netdev_mc_count(adapter->netdev)); | 1550 | req->mcast_num = cpu_to_le32(netdev_mc_count(adapter->netdev)); |
1544 | netdev_for_each_mc_addr(ha, adapter->netdev) | 1551 | netdev_for_each_mc_addr(ha, adapter->netdev) |
1545 | memcpy(req->mcast_mac[i++].byte, ha->addr, ETH_ALEN); | 1552 | memcpy(req->mcast_mac[i++].byte, ha->addr, ETH_ALEN); |