aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c5
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c11
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;