diff options
author | Sathya Perla <sathya.perla@emulex.com> | 2011-09-27 13:29:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-09-27 13:29:38 -0400 |
commit | 8e7d3f681ef462e6aaa151f231310452dac409ca (patch) | |
tree | c30dbdf6cd3e89176bee099d35c5b107731f0369 /drivers/net/ethernet/emulex | |
parent | 4de075e0438ba54b8f42cbbc1263d404229dc997 (diff) |
be2net: fix multicast filter programming
Re-posting with subject fixed!
Multicast programming has been broken since commit 5b8821b7. Setting the
MULTICAST flag while sending the cmd to the FW was missing. Fixed this.
Also fixed-up some indentation in the adjacent lines.
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index bebeee68b2fa..6bc07c7515b3 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -1580,14 +1580,16 @@ int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value) | |||
1580 | BE_IF_FLAGS_VLAN_PROMISCUOUS); | 1580 | BE_IF_FLAGS_VLAN_PROMISCUOUS); |
1581 | if (value == ON) | 1581 | if (value == ON) |
1582 | req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS | | 1582 | req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS | |
1583 | BE_IF_FLAGS_VLAN_PROMISCUOUS); | 1583 | BE_IF_FLAGS_VLAN_PROMISCUOUS); |
1584 | } else if (flags & IFF_ALLMULTI) { | 1584 | } else if (flags & IFF_ALLMULTI) { |
1585 | req->if_flags_mask = req->if_flags = | 1585 | req->if_flags_mask = req->if_flags = |
1586 | cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS); | 1586 | cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS); |
1587 | } else { | 1587 | } else { |
1588 | struct netdev_hw_addr *ha; | 1588 | struct netdev_hw_addr *ha; |
1589 | int i = 0; | 1589 | int i = 0; |
1590 | 1590 | ||
1591 | req->if_flags_mask = req->if_flags = | ||
1592 | cpu_to_le32(BE_IF_FLAGS_MULTICAST); | ||
1591 | req->mcast_num = cpu_to_le16(netdev_mc_count(adapter->netdev)); | 1593 | req->mcast_num = cpu_to_le16(netdev_mc_count(adapter->netdev)); |
1592 | netdev_for_each_mc_addr(ha, adapter->netdev) | 1594 | netdev_for_each_mc_addr(ha, adapter->netdev) |
1593 | memcpy(req->mcast_mac[i++].byte, ha->addr, ETH_ALEN); | 1595 | memcpy(req->mcast_mac[i++].byte, ha->addr, ETH_ALEN); |