bnx2x: prevent DCB if disabled in nvram
Signed-off-by: Barak Witkowski <barak@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
27c1151c32
Коммит
0370cf901d
|
@ -1904,6 +1904,11 @@ static u8 bnx2x_dcbnl_set_state(struct net_device *netdev, u8 state)
|
|||
struct bnx2x *bp = netdev_priv(netdev);
|
||||
DP(BNX2X_MSG_DCB, "state = %s\n", state ? "on" : "off");
|
||||
|
||||
if (state && ((bp->dcbx_enabled == BNX2X_DCBX_ENABLED_OFF) ||
|
||||
(bp->dcbx_enabled == BNX2X_DCBX_ENABLED_INVALID))) {
|
||||
DP(BNX2X_MSG_DCB, "Can not set dcbx to enabled while it is disabled in nvm\n");
|
||||
return 1;
|
||||
}
|
||||
bnx2x_dcbx_set_state(bp, (state ? true : false), bp->dcbx_enabled);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -11120,8 +11120,15 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp)
|
|||
bp->timer.data = (unsigned long) bp;
|
||||
bp->timer.function = bnx2x_timer;
|
||||
|
||||
bnx2x_dcbx_set_state(bp, true, BNX2X_DCBX_ENABLED_ON_NEG_ON);
|
||||
bnx2x_dcbx_init_params(bp);
|
||||
if (SHMEM2_HAS(bp, dcbx_lldp_params_offset) &&
|
||||
SHMEM2_HAS(bp, dcbx_lldp_dcbx_stat_offset) &&
|
||||
SHMEM2_RD(bp, dcbx_lldp_params_offset) &&
|
||||
SHMEM2_RD(bp, dcbx_lldp_dcbx_stat_offset)) {
|
||||
bnx2x_dcbx_set_state(bp, true, BNX2X_DCBX_ENABLED_ON_NEG_ON);
|
||||
bnx2x_dcbx_init_params(bp);
|
||||
} else {
|
||||
bnx2x_dcbx_set_state(bp, false, BNX2X_DCBX_ENABLED_OFF);
|
||||
}
|
||||
|
||||
if (CHIP_IS_E1x(bp))
|
||||
bp->cnic_base_cl_id = FP_SB_MAX_E1x;
|
||||
|
|
Загрузка…
Ссылка в новой задаче