aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorPadmanabh Ratnakar <padmanabh.ratnakar@emulex.com>2011-11-02 21:49:27 -0400
committerDavid S. Miller <davem@davemloft.net>2011-11-03 21:59:39 -0400
commit1610c79f1e9545d0a64dc6bb4f9affdfcf1d5726 (patch)
tree2713f365c1b903ff80768d231a09e2e6187a5675 /drivers/net/ethernet
parent016f97b11b3c7fe834260150d0f9cb36d06b2eb8 (diff)
be2net: Fix disabling multicast promiscous mode
If user tries to disable multicast promiscous mode, the adapter remains in this mode as resetting the multicast promiscous mode was missing in RX filter command. Fixed this. Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c7
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);