aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-02-08 20:19:01 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-08 20:19:01 -0500
commit263fb5b1bf9265d0e4ce59ff6ea92f478b5b61ea (patch)
tree5ee497d530185d32421122729af86cf77d0dc649 /drivers/net/bnx2x
parent8d13a2a9fb3e5e3f68e9d3ec0de3c8fcfa56a224 (diff)
parentc69b90920a36b88ab0d649963d81355d865eeb05 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/e1000e/netdev.c
Diffstat (limited to 'drivers/net/bnx2x')
-rw-r--r--drivers/net/bnx2x/bnx2x_main.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index ccf2c8c61a6..c238c4d65d1 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -4300,9 +4300,12 @@ void bnx2x_set_storm_rx_mode(struct bnx2x *bp)
4300 def_q_filters |= BNX2X_ACCEPT_UNICAST | BNX2X_ACCEPT_BROADCAST | 4300 def_q_filters |= BNX2X_ACCEPT_UNICAST | BNX2X_ACCEPT_BROADCAST |
4301 BNX2X_ACCEPT_MULTICAST; 4301 BNX2X_ACCEPT_MULTICAST;
4302#ifdef BCM_CNIC 4302#ifdef BCM_CNIC
4303 cl_id = bnx2x_fcoe(bp, cl_id); 4303 if (!NO_FCOE(bp)) {
4304 bnx2x_rxq_set_mac_filters(bp, cl_id, BNX2X_ACCEPT_UNICAST | 4304 cl_id = bnx2x_fcoe(bp, cl_id);
4305 BNX2X_ACCEPT_MULTICAST); 4305 bnx2x_rxq_set_mac_filters(bp, cl_id,
4306 BNX2X_ACCEPT_UNICAST |
4307 BNX2X_ACCEPT_MULTICAST);
4308 }
4306#endif 4309#endif
4307 break; 4310 break;
4308 4311
@@ -4310,18 +4313,29 @@ void bnx2x_set_storm_rx_mode(struct bnx2x *bp)
4310 def_q_filters |= BNX2X_ACCEPT_UNICAST | BNX2X_ACCEPT_BROADCAST | 4313 def_q_filters |= BNX2X_ACCEPT_UNICAST | BNX2X_ACCEPT_BROADCAST |
4311 BNX2X_ACCEPT_ALL_MULTICAST; 4314 BNX2X_ACCEPT_ALL_MULTICAST;
4312#ifdef BCM_CNIC 4315#ifdef BCM_CNIC
4313 cl_id = bnx2x_fcoe(bp, cl_id); 4316 /*
4314 bnx2x_rxq_set_mac_filters(bp, cl_id, BNX2X_ACCEPT_UNICAST | 4317 * Prevent duplication of multicast packets by configuring FCoE
4315 BNX2X_ACCEPT_MULTICAST); 4318 * L2 Client to receive only matched unicast frames.
4319 */
4320 if (!NO_FCOE(bp)) {
4321 cl_id = bnx2x_fcoe(bp, cl_id);
4322 bnx2x_rxq_set_mac_filters(bp, cl_id,
4323 BNX2X_ACCEPT_UNICAST);
4324 }
4316#endif 4325#endif
4317 break; 4326 break;
4318 4327
4319 case BNX2X_RX_MODE_PROMISC: 4328 case BNX2X_RX_MODE_PROMISC:
4320 def_q_filters |= BNX2X_PROMISCUOUS_MODE; 4329 def_q_filters |= BNX2X_PROMISCUOUS_MODE;
4321#ifdef BCM_CNIC 4330#ifdef BCM_CNIC
4322 cl_id = bnx2x_fcoe(bp, cl_id); 4331 /*
4323 bnx2x_rxq_set_mac_filters(bp, cl_id, BNX2X_ACCEPT_UNICAST | 4332 * Prevent packets duplication by configuring DROP_ALL for FCoE
4324 BNX2X_ACCEPT_MULTICAST); 4333 * L2 Client.
4334 */
4335 if (!NO_FCOE(bp)) {
4336 cl_id = bnx2x_fcoe(bp, cl_id);
4337 bnx2x_rxq_set_mac_filters(bp, cl_id, BNX2X_ACCEPT_NONE);
4338 }
4325#endif 4339#endif
4326 /* pass management unicast packets as well */ 4340 /* pass management unicast packets as well */
4327 llh_mask |= NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST; 4341 llh_mask |= NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST;