Patchwork [net-next,1/2] be2net: fix multicast filter programming

login
register
mail settings
Submitter Sathya Perla
Date Sept. 27, 2011, 11:25 a.m.
Message ID <1317122713-5640-1-git-send-email-sathya.perla@emulex.com>
Download mbox | patch
Permalink /patch/116585/
State Accepted
Delegated to: David Miller
Headers show

Comments

Sathya Perla - Sept. 27, 2011, 11:25 a.m.
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>
---
 drivers/net/ethernet/emulex/benet/be_cmds.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
David Miller - Sept. 27, 2011, 5:29 p.m.
From: Sathya Perla <sathya.perla@emulex.com>
Date: Tue, 27 Sep 2011 16:55:13 +0530

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

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index bebeee6..6bc07c7 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)
 					BE_IF_FLAGS_VLAN_PROMISCUOUS);
 		if (value == ON)
 			req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS |
-					BE_IF_FLAGS_VLAN_PROMISCUOUS);
+						BE_IF_FLAGS_VLAN_PROMISCUOUS);
 	} else if (flags & IFF_ALLMULTI) {
 		req->if_flags_mask = req->if_flags =
-			cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS);
+				cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS);
 	} else {
 		struct netdev_hw_addr *ha;
 		int i = 0;
 
+		req->if_flags_mask = req->if_flags =
+				cpu_to_le32(BE_IF_FLAGS_MULTICAST);
 		req->mcast_num = cpu_to_le16(netdev_mc_count(adapter->netdev));
 		netdev_for_each_mc_addr(ha, adapter->netdev)
 			memcpy(req->mcast_mac[i++].byte, ha->addr, ETH_ALEN);