diff options
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c index be66bb679d5a..3631d639d86a 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | |||
@@ -318,7 +318,15 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) | |||
318 | .selector = DCB_APP_IDTYPE_ETHTYPE, | 318 | .selector = DCB_APP_IDTYPE_ETHTYPE, |
319 | .protocol = ETH_P_FCOE, | 319 | .protocol = ETH_P_FCOE, |
320 | }; | 320 | }; |
321 | u8 up = dcb_getapp(netdev, &app); | 321 | u8 up; |
322 | |||
323 | /* In IEEE mode, use the IEEE Ethertype selector value */ | ||
324 | if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_IEEE) { | ||
325 | app.selector = IEEE_8021QAZ_APP_SEL_ETHERTYPE; | ||
326 | up = dcb_ieee_getapp_mask(netdev, &app); | ||
327 | } else { | ||
328 | up = dcb_getapp(netdev, &app); | ||
329 | } | ||
322 | #endif | 330 | #endif |
323 | 331 | ||
324 | /* Fail command if not in CEE mode */ | 332 | /* Fail command if not in CEE mode */ |
@@ -331,7 +339,7 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) | |||
331 | return DCB_NO_HW_CHG; | 339 | return DCB_NO_HW_CHG; |
332 | 340 | ||
333 | #ifdef IXGBE_FCOE | 341 | #ifdef IXGBE_FCOE |
334 | if (up && (up != (1 << adapter->fcoe.up))) | 342 | if (up && !(up & (1 << adapter->fcoe.up))) |
335 | adapter->dcb_set_bitmap |= BIT_APP_UPCHG; | 343 | adapter->dcb_set_bitmap |= BIT_APP_UPCHG; |
336 | 344 | ||
337 | /* | 345 | /* |