Skip to contentSkip to conversation

be2net: Reset multicast promiscuous mode when its enabled

PATCH In review Ajit Khaparde 2 participants 2 messages May 2, 2014 – May 5, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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
index d1ec15a..78888ab 100644
@@ -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
maintainer
#1 lore raw

From: 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
index d1ec15a..78888ab 100644
@@ -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