diff options
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 5 | ||||
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c index c0d9b6947d97..c8c034027ce5 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | |||
| @@ -1904,6 +1904,11 @@ static u8 bnx2x_dcbnl_set_state(struct net_device *netdev, u8 state) | |||
| 1904 | struct bnx2x *bp = netdev_priv(netdev); | 1904 | struct bnx2x *bp = netdev_priv(netdev); |
| 1905 | DP(BNX2X_MSG_DCB, "state = %s\n", state ? "on" : "off"); | 1905 | DP(BNX2X_MSG_DCB, "state = %s\n", state ? "on" : "off"); |
| 1906 | 1906 | ||
| 1907 | if (state && ((bp->dcbx_enabled == BNX2X_DCBX_ENABLED_OFF) || | ||
| 1908 | (bp->dcbx_enabled == BNX2X_DCBX_ENABLED_INVALID))) { | ||
| 1909 | DP(BNX2X_MSG_DCB, "Can not set dcbx to enabled while it is disabled in nvm\n"); | ||
| 1910 | return 1; | ||
| 1911 | } | ||
| 1907 | bnx2x_dcbx_set_state(bp, (state ? true : false), bp->dcbx_enabled); | 1912 | bnx2x_dcbx_set_state(bp, (state ? true : false), bp->dcbx_enabled); |
| 1908 | return 0; | 1913 | return 0; |
| 1909 | } | 1914 | } |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index d76ca90eea94..ab65f34bb541 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
| @@ -11120,8 +11120,15 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp) | |||
| 11120 | bp->timer.data = (unsigned long) bp; | 11120 | bp->timer.data = (unsigned long) bp; |
| 11121 | bp->timer.function = bnx2x_timer; | 11121 | bp->timer.function = bnx2x_timer; |
| 11122 | 11122 | ||
| 11123 | bnx2x_dcbx_set_state(bp, true, BNX2X_DCBX_ENABLED_ON_NEG_ON); | 11123 | if (SHMEM2_HAS(bp, dcbx_lldp_params_offset) && |
| 11124 | bnx2x_dcbx_init_params(bp); | 11124 | SHMEM2_HAS(bp, dcbx_lldp_dcbx_stat_offset) && |
| 11125 | SHMEM2_RD(bp, dcbx_lldp_params_offset) && | ||
| 11126 | SHMEM2_RD(bp, dcbx_lldp_dcbx_stat_offset)) { | ||
| 11127 | bnx2x_dcbx_set_state(bp, true, BNX2X_DCBX_ENABLED_ON_NEG_ON); | ||
| 11128 | bnx2x_dcbx_init_params(bp); | ||
| 11129 | } else { | ||
| 11130 | bnx2x_dcbx_set_state(bp, false, BNX2X_DCBX_ENABLED_OFF); | ||
| 11131 | } | ||
| 11125 | 11132 | ||
| 11126 | if (CHIP_IS_E1x(bp)) | 11133 | if (CHIP_IS_E1x(bp)) |
| 11127 | bp->cnic_base_cl_id = FP_SB_MAX_E1x; | 11134 | bp->cnic_base_cl_id = FP_SB_MAX_E1x; |
