From: Michael Chan Date: Tue, 16 May 2017 20:39:44 +0000 (-0400) Subject: bnxt_en: Check status of firmware DCBX agent before setting DCB_CAP_DCBX_HOST. X-Git-Tag: v4.1.12-106.0.20170710_2300~28 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=90c56b285428755491336a50b0985335989f4d5c;p=users%2Fjedix%2Flinux-maple.git bnxt_en: Check status of firmware DCBX agent before setting DCB_CAP_DCBX_HOST. Orabug: 26402533, 26325599, 26366387 Otherwise, all the host based DCBX settings from lldpad will fail if the firmware DCBX agent is running. Signed-off-by: Michael Chan Signed-off-by: David S. Miller (cherry picked from commit f667724b99ad1afc91f16064d8fb293d2805bd57) Signed-off-by: Brian Maly Signed-off-by: Somasundaram Krishnasamy --- diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c index a8414e5ff0ff..0cb42d7d8fd8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c @@ -554,8 +554,10 @@ static u8 bnxt_dcbnl_setdcbx(struct net_device *dev, u8 mode) if ((mode & DCB_CAP_DCBX_VER_CEE) || !(mode & DCB_CAP_DCBX_VER_IEEE)) return 1; - if ((mode & DCB_CAP_DCBX_HOST) && BNXT_VF(bp)) - return 1; + if (mode & DCB_CAP_DCBX_HOST) { + if (BNXT_VF(bp) || (bp->flags & BNXT_FLAG_FW_LLDP_AGENT)) + return 1; + } if (mode == bp->dcbx_cap) return 0;