be2net: Reset multicast promiscuous mode when its enabled
Subsystems (3)
PATCH 2/2 be2net: Reset multicast promiscuous mode when its enabled
Currently we are resetting the multicast promiscuous mode everytime we send a multicast list to the FW. It is unnecessary.
With this fix we disable multicast promiscuous mode only when enabled.
--- drivers/net/ethernet/emulex/benet/be_cmds.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/net/ethernet/emulex/benet/be_cmds.c +5 -3
@@ -1858,9 +1858,11 @@ int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value)/* Reset mcast promisc mode if already set by setting mask * and not setting flags field */ - req->if_flags_mask |= -cpu_to_le32 (BE_IF_FLAGS_MCAST_PROMISCUOUS & -be_if_cap_flags (adapter)); +if (adapter->flags &BE_FLAGS_MCAST_PROMISC ) + req->if_flags_mask |= +cpu_to_le32 (BE_IF_FLAGS_MCAST_PROMISCUOUS & +be_if_cap_flags (adapter)); + req->mcast_num =cpu_to_le32 (netdev_mc_count (adapter->netdev));netdev_for_each_mc_addr (ha, adapter->netdev)memcpy (req->mcast_mac[i++].byte, ha->addr,ETH_ALEN );
Signature · 1 line
1.8.3.2
David Miller
maintainerFrom: Ajit Khaparde <[email protected]>
Date: Fri, 2 May 2014 14:43:36 -0500
Quoted 6 lines
drivers/net/ethernet/emulex/benet/be_cmds.c +0
-0@@ -1858,9 +1858,11 @@ int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value)/* Reset mcast promisc mode if already set by setting mask
drivers/net/ethernet/emulex/benet/be_cmds.c int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value) · line 1865
Quoted 10 lines
drivers/net/ethernet/emulex/benet/be_cmds.c +5
-3* and not setting flags field */ - req->if_flags_mask |= -cpu_to_le32 (BE_IF_FLAGS_MCAST_PROMISCUOUS & -be_if_cap_flags (adapter)); +if (adapter->flags &BE_FLAGS_MCAST_PROMISC ) + req->if_flags_mask |= +cpu_to_le32 (BE_IF_FLAGS_MCAST_PROMISCUOUS & +be_if_cap_flags (adapter)); +
This breaks the build:
drivers/net/ethernet/emulex/benet/be_cmds.c: In function ‘be_cmd_rx_filter’:drivers/net/ethernet/emulex/benet/be_cmds.c:1861:24: error: ‘BE_FLAGS_MCAST_PROMISC’ undeclared (first use in this function) drivers/net/ethernet/emulex/benet/be_cmds.c:1861:24: note: each undeclared identifier is reported only once for each function it appears in