diff options
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_main.c')
-rw-r--r-- | drivers/net/bnx2x/bnx2x_main.c | 32 |
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; |