diff mbox

[net,2/2] be2net: Reset multicast promiscuous mode when its enabled

Message ID 20140502194336.GA20113@emulex.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Ajit Khaparde May 2, 2014, 7:43 p.m. UTC
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.

Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_cmds.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

David Miller May 5, 2014, 7:19 p.m. UTC | #1
From: Ajit Khaparde <ajit.khaparde@emulex.com>

Date: Fri, 2 May 2014 14:43:36 -0500

> diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c

> index d1ec15a..78888ab 100644

> --- a/drivers/net/ethernet/emulex/benet/be_cmds.c

> +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c

> @@ -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));

> +


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
diff mbox

Patch

diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index d1ec15a..78888ab 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -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);