diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c')
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 21054987257a..211753e01f81 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
| @@ -7561,8 +7561,14 @@ int bnx2x_set_mac_one(struct bnx2x *bp, u8 *mac, | |||
| 7561 | } | 7561 | } |
| 7562 | 7562 | ||
| 7563 | rc = bnx2x_config_vlan_mac(bp, &ramrod_param); | 7563 | rc = bnx2x_config_vlan_mac(bp, &ramrod_param); |
| 7564 | if (rc < 0) | 7564 | |
| 7565 | if (rc == -EEXIST) { | ||
| 7566 | DP(BNX2X_MSG_SP, "Failed to schedule ADD operations: %d\n", rc); | ||
| 7567 | /* do not treat adding same MAC as error */ | ||
| 7568 | rc = 0; | ||
| 7569 | } else if (rc < 0) | ||
| 7565 | BNX2X_ERR("%s MAC failed\n", (set ? "Set" : "Del")); | 7570 | BNX2X_ERR("%s MAC failed\n", (set ? "Set" : "Del")); |
| 7571 | |||
| 7566 | return rc; | 7572 | return rc; |
| 7567 | } | 7573 | } |
| 7568 | 7574 | ||
| @@ -10294,13 +10300,11 @@ static void __devinit bnx2x_get_fcoe_info(struct bnx2x *bp) | |||
| 10294 | dev_info.port_hw_config[port]. | 10300 | dev_info.port_hw_config[port]. |
| 10295 | fcoe_wwn_node_name_lower); | 10301 | fcoe_wwn_node_name_lower); |
| 10296 | } else if (!IS_MF_SD(bp)) { | 10302 | } else if (!IS_MF_SD(bp)) { |
| 10297 | u32 cfg = MF_CFG_RD(bp, func_ext_config[func].func_cfg); | ||
| 10298 | |||
| 10299 | /* | 10303 | /* |
| 10300 | * Read the WWN info only if the FCoE feature is enabled for | 10304 | * Read the WWN info only if the FCoE feature is enabled for |
| 10301 | * this function. | 10305 | * this function. |
| 10302 | */ | 10306 | */ |
| 10303 | if (cfg & MACP_FUNC_CFG_FLAGS_FCOE_OFFLOAD) | 10307 | if (BNX2X_MF_EXT_PROTOCOL_FCOE(bp) && !CHIP_IS_E1x(bp)) |
| 10304 | bnx2x_get_ext_wwn_info(bp, func); | 10308 | bnx2x_get_ext_wwn_info(bp, func); |
| 10305 | 10309 | ||
| 10306 | } else if (IS_MF_FCOE_SD(bp)) | 10310 | } else if (IS_MF_FCOE_SD(bp)) |
| @@ -11073,7 +11077,14 @@ static int bnx2x_set_uc_list(struct bnx2x *bp) | |||
| 11073 | netdev_for_each_uc_addr(ha, dev) { | 11077 | netdev_for_each_uc_addr(ha, dev) { |
| 11074 | rc = bnx2x_set_mac_one(bp, bnx2x_uc_addr(ha), mac_obj, true, | 11078 | rc = bnx2x_set_mac_one(bp, bnx2x_uc_addr(ha), mac_obj, true, |
| 11075 | BNX2X_UC_LIST_MAC, &ramrod_flags); | 11079 | BNX2X_UC_LIST_MAC, &ramrod_flags); |
| 11076 | if (rc < 0) { | 11080 | if (rc == -EEXIST) { |
| 11081 | DP(BNX2X_MSG_SP, | ||
| 11082 | "Failed to schedule ADD operations: %d\n", rc); | ||
| 11083 | /* do not treat adding same MAC as error */ | ||
| 11084 | rc = 0; | ||
| 11085 | |||
| 11086 | } else if (rc < 0) { | ||
| 11087 | |||
| 11077 | BNX2X_ERR("Failed to schedule ADD operations: %d\n", | 11088 | BNX2X_ERR("Failed to schedule ADD operations: %d\n", |
| 11078 | rc); | 11089 | rc); |
| 11079 | return rc; | 11090 | return rc; |
