kni: fix build with kernel 4.15
build error: .../dpdk/build/build/lib/librte_eal/linuxapp/kni/igb_main.c:2809:2: error: implicit declaration of function ‘setup_timer’; did you mean ‘sk_stop_timer’? [-Werror=implicit-function-declaration] setup_timer(&adapter->watchdog_timer, &igb_watchdog, ^~~~~~~~~~~ sk_stop_timer cc1: all warnings being treated as errors error observed whed CONFIG_RTE_KNI_KMOD_ETHTOOL config option enabled. Because Linux removed setup_timer macros for kernel version >= 4.15 Linux: 513ae785c63c ("timer: Remove setup_*timer() interface") Replaced setup_timer with timer_setup for new kernel versions. Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
224374cc0e
commit
d291fb3a8d
@ -137,11 +137,20 @@ static void igb_clean_all_tx_rings(struct igb_adapter *);
|
||||
static void igb_clean_all_rx_rings(struct igb_adapter *);
|
||||
static void igb_clean_tx_ring(struct igb_ring *);
|
||||
static void igb_set_rx_mode(struct net_device *);
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
static void igb_update_phy_info(struct timer_list *);
|
||||
static void igb_watchdog(struct timer_list *);
|
||||
#else
|
||||
static void igb_update_phy_info(unsigned long);
|
||||
static void igb_watchdog(unsigned long);
|
||||
#endif
|
||||
static void igb_watchdog_task(struct work_struct *);
|
||||
static void igb_dma_err_task(struct work_struct *);
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
static void igb_dma_err_timer(struct timer_list *);
|
||||
#else
|
||||
static void igb_dma_err_timer(unsigned long data);
|
||||
#endif
|
||||
static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *);
|
||||
static struct net_device_stats *igb_get_stats(struct net_device *);
|
||||
static int igb_change_mtu(struct net_device *, int);
|
||||
@ -2806,6 +2815,12 @@ static int __devinit igb_probe(struct pci_dev *pdev,
|
||||
/* Check if Media Autosense is enabled */
|
||||
if (hw->mac.type == e1000_82580)
|
||||
igb_init_mas(adapter);
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
timer_setup(&adapter->watchdog_timer, &igb_watchdog, 0);
|
||||
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
|
||||
timer_setup(&adapter->dma_err_timer, &igb_dma_err_timer, 0);
|
||||
timer_setup(&adapter->phy_info_timer, &igb_update_phy_info, 0);
|
||||
#else
|
||||
setup_timer(&adapter->watchdog_timer, &igb_watchdog,
|
||||
(unsigned long) adapter);
|
||||
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
|
||||
@ -2813,6 +2828,7 @@ static int __devinit igb_probe(struct pci_dev *pdev,
|
||||
(unsigned long) adapter);
|
||||
setup_timer(&adapter->phy_info_timer, &igb_update_phy_info,
|
||||
(unsigned long) adapter);
|
||||
#endif
|
||||
|
||||
INIT_WORK(&adapter->reset_task, igb_reset_task);
|
||||
INIT_WORK(&adapter->watchdog_task, igb_watchdog_task);
|
||||
@ -4543,9 +4559,15 @@ static void igb_spoof_check(struct igb_adapter *adapter)
|
||||
|
||||
/* Need to wait a few seconds after link up to get diagnostic information from
|
||||
* the phy */
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
static void igb_update_phy_info(struct timer_list *t)
|
||||
{
|
||||
struct igb_adapter *adapter = from_timer(adapter, t, phy_info_timer);
|
||||
#else
|
||||
static void igb_update_phy_info(unsigned long data)
|
||||
{
|
||||
struct igb_adapter *adapter = (struct igb_adapter *) data;
|
||||
#endif
|
||||
e1000_get_phy_info(&adapter->hw);
|
||||
}
|
||||
|
||||
@ -4594,9 +4616,15 @@ bool igb_has_link(struct igb_adapter *adapter)
|
||||
* igb_watchdog - Timer Call-back
|
||||
* @data: pointer to adapter cast into an unsigned long
|
||||
**/
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
static void igb_watchdog(struct timer_list *t)
|
||||
{
|
||||
struct igb_adapter *adapter = from_timer(adapter, t, watchdog_timer);
|
||||
#else
|
||||
static void igb_watchdog(unsigned long data)
|
||||
{
|
||||
struct igb_adapter *adapter = (struct igb_adapter *)data;
|
||||
#endif
|
||||
/* Do the rest outside of interrupt context */
|
||||
schedule_work(&adapter->watchdog_task);
|
||||
}
|
||||
@ -4854,9 +4882,15 @@ static void igb_dma_err_task(struct work_struct *work)
|
||||
* igb_dma_err_timer - Timer Call-back
|
||||
* @data: pointer to adapter cast into an unsigned long
|
||||
**/
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
static void igb_dma_err_timer(struct timer_list *t)
|
||||
{
|
||||
struct igb_adapter *adapter = from_timer(adapter, t, dma_err_timer);
|
||||
#else
|
||||
static void igb_dma_err_timer(unsigned long data)
|
||||
{
|
||||
struct igb_adapter *adapter = (struct igb_adapter *)data;
|
||||
#endif
|
||||
/* Do the rest outside of interrupt context */
|
||||
schedule_work(&adapter->dma_err_task);
|
||||
}
|
||||
@ -10051,6 +10085,12 @@ int igb_kni_probe(struct pci_dev *pdev,
|
||||
igb_init_mas(adapter);
|
||||
|
||||
#ifdef NO_KNI
|
||||
#ifdef HAVE_TIMER_SETUP
|
||||
timer_setup(&adapter->watchdog_timer, &igb_watchdog, 0);
|
||||
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
|
||||
timer_setup(&adapter->dma_err_timer, &igb_dma_err_timer, 0);
|
||||
timer_setup(&adapter->phy_info_timer, &igb_update_phy_info, 0);
|
||||
#else
|
||||
setup_timer(&adapter->watchdog_timer, &igb_watchdog,
|
||||
(unsigned long) adapter);
|
||||
if (adapter->flags & IGB_FLAG_DETECT_BAD_DMA)
|
||||
@ -10058,6 +10098,7 @@ int igb_kni_probe(struct pci_dev *pdev,
|
||||
(unsigned long) adapter);
|
||||
setup_timer(&adapter->phy_info_timer, &igb_update_phy_info,
|
||||
(unsigned long) adapter);
|
||||
#endif
|
||||
|
||||
INIT_WORK(&adapter->reset_task, igb_reset_task);
|
||||
INIT_WORK(&adapter->watchdog_task, igb_watchdog_task);
|
||||
|
@ -3941,4 +3941,8 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
|
||||
#define HAVE_PCI_ENABLE_MSIX
|
||||
#endif
|
||||
|
||||
#if defined(timer_setup) && defined(from_timer)
|
||||
#define HAVE_TIMER_SETUP
|
||||
#endif
|
||||
|
||||
#endif /* _KCOMPAT_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user