aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x/bnx2x_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_main.c')
-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 ccf2c8c61a61..c238c4d65d13 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;