diff options
author | John Fastabend <john.r.fastabend@intel.com> | 2011-10-15 01:00:10 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-11-02 19:55:31 -0400 |
commit | b120818e652965669d3f1abaeaa5c3ccdfb28126 (patch) | |
tree | f6b2a4b60a94ecbb805a4825834940a62e1e748e /drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |
parent | 93d3ce8fafb888702311fc8c5917faa4c25b8266 (diff) |
ixgbe: fix smatch splat due to missing NULL check
ixgbe_ieee_ets and ixgbe_ieee_pfc are intialized at
the same time. Do a check for both before configuring
IEEE802.1Qaz. Also max_frame was causing a sparse
warning resolved here as well.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 2e9fd9dccf0c..8ef92d1a6aa1 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -3345,34 +3345,25 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter) | |||
3345 | 3345 | ||
3346 | hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true); | 3346 | hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true); |
3347 | 3347 | ||
3348 | /* reconfigure the hardware */ | ||
3349 | if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) { | ||
3350 | #ifdef IXGBE_FCOE | 3348 | #ifdef IXGBE_FCOE |
3351 | if (adapter->netdev->features & NETIF_F_FCOE_MTU) | 3349 | if (adapter->netdev->features & NETIF_F_FCOE_MTU) |
3352 | max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE); | 3350 | max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE); |
3353 | #endif | 3351 | #endif |
3352 | |||
3353 | /* reconfigure the hardware */ | ||
3354 | if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) { | ||
3354 | ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame, | 3355 | ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame, |
3355 | DCB_TX_CONFIG); | 3356 | DCB_TX_CONFIG); |
3356 | ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame, | 3357 | ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame, |
3357 | DCB_RX_CONFIG); | 3358 | DCB_RX_CONFIG); |
3358 | ixgbe_dcb_hw_config(hw, &adapter->dcb_cfg); | 3359 | ixgbe_dcb_hw_config(hw, &adapter->dcb_cfg); |
3359 | } else { | 3360 | } else if (adapter->ixgbe_ieee_ets && adapter->ixgbe_ieee_pfc) { |
3360 | struct net_device *dev = adapter->netdev; | 3361 | ixgbe_dcb_hw_ets(&adapter->hw, |
3361 | 3362 | adapter->ixgbe_ieee_ets, | |
3362 | if (adapter->ixgbe_ieee_ets) { | 3363 | max_frame); |
3363 | struct ieee_ets *ets = adapter->ixgbe_ieee_ets; | 3364 | ixgbe_dcb_hw_pfc_config(&adapter->hw, |
3364 | int max_frame = dev->mtu + ETH_HLEN + ETH_FCS_LEN; | 3365 | adapter->ixgbe_ieee_pfc->pfc_en, |
3365 | 3366 | adapter->ixgbe_ieee_ets->prio_tc); | |
3366 | ixgbe_dcb_hw_ets(&adapter->hw, ets, max_frame); | ||
3367 | } | ||
3368 | |||
3369 | if (adapter->ixgbe_ieee_pfc) { | ||
3370 | struct ieee_pfc *pfc = adapter->ixgbe_ieee_pfc; | ||
3371 | u8 *prio_tc = adapter->ixgbe_ieee_ets->prio_tc; | ||
3372 | |||
3373 | ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, | ||
3374 | prio_tc); | ||
3375 | } | ||
3376 | } | 3367 | } |
3377 | 3368 | ||
3378 | /* Enable RSS Hash per TC */ | 3369 | /* Enable RSS Hash per TC */ |