ixgbe: Make ixgbe_setup_tc usable even when DCB is not enabled
The ixgbe_setup_tc code is essentially the same code we need any time we have to update the number of queues. As such I am making it available always and just stripping the DCB specific bits out when DCB is disabled instead of stripping the entire function. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Reviewed-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
97488bd1f3
commit
cca73c59c4
2 changed files with 8 additions and 13 deletions
|
@ -700,8 +700,8 @@ extern bool ixgbe_verify_lesm_fw_enabled_82599(struct ixgbe_hw *hw);
|
||||||
extern void ixgbe_set_rx_mode(struct net_device *netdev);
|
extern void ixgbe_set_rx_mode(struct net_device *netdev);
|
||||||
#ifdef CONFIG_IXGBE_DCB
|
#ifdef CONFIG_IXGBE_DCB
|
||||||
extern void ixgbe_set_rx_drop_en(struct ixgbe_adapter *adapter);
|
extern void ixgbe_set_rx_drop_en(struct ixgbe_adapter *adapter);
|
||||||
extern int ixgbe_setup_tc(struct net_device *dev, u8 tc);
|
|
||||||
#endif
|
#endif
|
||||||
|
extern int ixgbe_setup_tc(struct net_device *dev, u8 tc);
|
||||||
extern void ixgbe_tx_ctxtdesc(struct ixgbe_ring *, u32, u32, u32, u32);
|
extern void ixgbe_tx_ctxtdesc(struct ixgbe_ring *, u32, u32, u32, u32);
|
||||||
extern void ixgbe_do_reset(struct net_device *netdev);
|
extern void ixgbe_do_reset(struct net_device *netdev);
|
||||||
#ifdef CONFIG_IXGBE_HWMON
|
#ifdef CONFIG_IXGBE_HWMON
|
||||||
|
|
|
@ -6812,6 +6812,7 @@ static void ixgbe_set_prio_tc_map(struct ixgbe_adapter *adapter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_IXGBE_DCB */
|
||||||
/**
|
/**
|
||||||
* ixgbe_setup_tc - configure net_device for multiple traffic classes
|
* ixgbe_setup_tc - configure net_device for multiple traffic classes
|
||||||
*
|
*
|
||||||
|
@ -6837,6 +6838,7 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
|
||||||
ixgbe_close(dev);
|
ixgbe_close(dev);
|
||||||
ixgbe_clear_interrupt_scheme(adapter);
|
ixgbe_clear_interrupt_scheme(adapter);
|
||||||
|
|
||||||
|
#ifdef CONFIG_IXGBE_DCB
|
||||||
if (tc) {
|
if (tc) {
|
||||||
netdev_set_num_tc(dev, tc);
|
netdev_set_num_tc(dev, tc);
|
||||||
ixgbe_set_prio_tc_map(adapter);
|
ixgbe_set_prio_tc_map(adapter);
|
||||||
|
@ -6859,31 +6861,24 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
|
||||||
adapter->dcb_cfg.pfc_mode_enable = false;
|
adapter->dcb_cfg.pfc_mode_enable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ixgbe_init_interrupt_scheme(adapter);
|
|
||||||
ixgbe_validate_rtr(adapter, tc);
|
ixgbe_validate_rtr(adapter, tc);
|
||||||
|
|
||||||
|
#endif /* CONFIG_IXGBE_DCB */
|
||||||
|
ixgbe_init_interrupt_scheme(adapter);
|
||||||
|
|
||||||
if (netif_running(dev))
|
if (netif_running(dev))
|
||||||
ixgbe_open(dev);
|
return ixgbe_open(dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_IXGBE_DCB */
|
|
||||||
#ifdef CONFIG_PCI_IOV
|
#ifdef CONFIG_PCI_IOV
|
||||||
void ixgbe_sriov_reinit(struct ixgbe_adapter *adapter)
|
void ixgbe_sriov_reinit(struct ixgbe_adapter *adapter)
|
||||||
{
|
{
|
||||||
struct net_device *netdev = adapter->netdev;
|
struct net_device *netdev = adapter->netdev;
|
||||||
|
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
#ifdef CONFIG_IXGBE_DCB
|
|
||||||
ixgbe_setup_tc(netdev, netdev_get_num_tc(netdev));
|
ixgbe_setup_tc(netdev, netdev_get_num_tc(netdev));
|
||||||
#else
|
|
||||||
if (netif_running(netdev))
|
|
||||||
ixgbe_close(netdev);
|
|
||||||
ixgbe_clear_interrupt_scheme(adapter);
|
|
||||||
ixgbe_init_interrupt_scheme(adapter);
|
|
||||||
if (netif_running(netdev))
|
|
||||||
ixgbe_open(netdev);
|
|
||||||
#endif
|
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue