From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id D54111B1C9 for ; Fri, 26 Jan 2018 14:13:43 +0100 (CET) Received: by mail-wm0-f66.google.com with SMTP id 143so1185591wma.5 for ; Fri, 26 Jan 2018 05:13:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sf33flTY5UqHIrLQzSKPU51wc/OkLMzefRSx0qUtENI=; b=GJWd/VijW6xxhyMpkVGn12NQb0Ve2kt9m4FEIMyEo25CaLc5x6n28dTad1HdoXJuRv W+GIQeVSFDIkU9/c1oFV4fF2GqUNvX3hZBvNuWQHYYWxKzVShHmZHwyf2XDNx26n4V3a 3wcUw6AU3l7qs3q6mc7gzCfw1RVwYFfR+RL0z+uEdwAxiLNKpU7fqzYLW0ToBgKuTu/1 judxaNDQToCaqkBws4S1mKpJ4RC/bSj8aF2ZQ4tHgVFnJeKkGEtj+IRHoXElaJJS8Byg Zzj1YuuDNEu8CN8RLL4AyJ1OAfULEOkAXioFJvuemmIHn/cObhHAaWZTfUat3naPCXTJ ljQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sf33flTY5UqHIrLQzSKPU51wc/OkLMzefRSx0qUtENI=; b=CwdS5WyjHMEayMui9JY5j+2SNZi8r1ZbLVRUHJSwyG7Q/QOuusQl6thdclpo+FKRtu AmouU9Lmc+DmO+DXM4Km7LzsjOOGbYzuD2gStKzhu7fpznpFAXSaD5SLnwUdBb6iBFEG z9HUjMLBBaKm7u0q2GTIr2Szut/EqfyYgKSZsJuWwnKI1aLhwwTq/uVN9QAMczsjv6zR HN+HUY9oGpd2jW8SDCqNLeXgINTZ7Te9degLtNWapVSq3BLqeQ8grOZbKiq+Cj4U45bb uFgOt9VXv8iXe5V2nvG4Aid+pYplzeRm6Mfh3+iJ5PgUgq9+rZYxxpHdt163OHKPw81Y UX8w== X-Gm-Message-State: AKwxytcbMuO0IsTgBHmd/Ru4u4Tk9vT0hQwRKA37m3qvr5aNe7LHkSNP nhKrVA/Omdtr5dsWYrhVJhHiIuyo X-Google-Smtp-Source: AH8x224lP15aRfhc424ifuyXNkqQKBf8pOEOo/JSaGLOlBJ22qtTQKZHRBQmC2BFfNKh7Ljaj42F7g== X-Received: by 10.28.108.4 with SMTP id h4mr9944532wmc.161.1516972423256; Fri, 26 Jan 2018 05:13:43 -0800 (PST) Received: from localhost ([2a00:23c5:bef3:400:9531:588b:44ae:bec4]) by smtp.gmail.com with ESMTPSA id u194sm1262077wmd.8.2018.01.26.05.13.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 26 Jan 2018 05:13:42 -0800 (PST) From: luca.boccassi@gmail.com To: Ferruh Yigit Cc: dpdk stable Date: Fri, 26 Jan 2018 13:12:31 +0000 Message-Id: <20180126131332.15346-1-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.14.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'kni: fix build with kernel 4.15' has been queued to LTS release 16.11.5 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2018 13:13:44 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 01/28/18. So please shout if anyone has objections. Thanks. Luca Boccassi --- >>From 2061c152af06c8cb372371a718a3ecf722201f4e Mon Sep 17 00:00:00 2001 From: Ferruh Yigit Date: Tue, 28 Nov 2017 23:45:53 +0000 Subject: [PATCH] kni: fix build with kernel 4.15 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ upstream commit d291fb3a8d162161897636387910637bbe9cbf17 ] 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 --- lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 41 ++++++++++++++++++++++ lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 4 +++ 2 files changed, 45 insertions(+) diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c index acb1a69b4..3c683e174 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c @@ -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 @@ dma_timer_reset: * 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); diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h index aea253b1c..88bd18eca 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h @@ -3937,4 +3937,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_ */ -- 2.14.2