Commit b120818e authored by John Fastabend's avatar John Fastabend Committed by Jeff Kirsher
Browse files

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: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 93d3ce8f
Loading
Loading
Loading
Loading
+12 −21
Original line number Original line Diff line number Diff line
@@ -3345,34 +3345,25 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter)


	hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true);
	hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true);


	/* reconfigure the hardware */
	if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) {
#ifdef IXGBE_FCOE
#ifdef IXGBE_FCOE
	if (adapter->netdev->features & NETIF_F_FCOE_MTU)
	if (adapter->netdev->features & NETIF_F_FCOE_MTU)
		max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE);
		max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE);
#endif
#endif

	/* reconfigure the hardware */
	if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) {
		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,
		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,
						DCB_TX_CONFIG);
						DCB_TX_CONFIG);
		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,
		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,
						DCB_RX_CONFIG);
						DCB_RX_CONFIG);
		ixgbe_dcb_hw_config(hw, &adapter->dcb_cfg);
		ixgbe_dcb_hw_config(hw, &adapter->dcb_cfg);
	} else {
	} else if (adapter->ixgbe_ieee_ets && adapter->ixgbe_ieee_pfc) {
		struct net_device *dev = adapter->netdev;
		ixgbe_dcb_hw_ets(&adapter->hw,

				 adapter->ixgbe_ieee_ets,
		if (adapter->ixgbe_ieee_ets) {
				 max_frame);
			struct ieee_ets *ets = adapter->ixgbe_ieee_ets;
		ixgbe_dcb_hw_pfc_config(&adapter->hw,
			int max_frame = dev->mtu + ETH_HLEN + ETH_FCS_LEN;
					adapter->ixgbe_ieee_pfc->pfc_en,

					adapter->ixgbe_ieee_ets->prio_tc);
			ixgbe_dcb_hw_ets(&adapter->hw, ets, max_frame);
		}

		if (adapter->ixgbe_ieee_pfc) {
			struct ieee_pfc *pfc = adapter->ixgbe_ieee_pfc;
			u8 *prio_tc = adapter->ixgbe_ieee_ets->prio_tc;

			ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en,
						prio_tc);
		}
	}
	}


	/* Enable RSS Hash per TC */
	/* Enable RSS Hash per TC */