patches for DPDK stable branches
 help / color / mirror / Atom feed
* Re: [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' has been queued to LTS release 17.11.1
@ 2018-02-01  9:17 Yuanhan Liu
  0 siblings, 0 replies; 2+ messages in thread
From: Yuanhan Liu @ 2018-02-01  9:17 UTC (permalink / raw)
  To: Shachar Beiser; +Cc: dpdk stable

FYI, this one has been reverted, for it breaks the MLX5 build:

drivers/net/mlx5/mlx5_flow.c:1487:37: error: 'IPV6_HDR_FL_MASK' undeclared (first use in this function)

If you think it's a must to have for 17.11.1 release, please do backport.

Thanks.

	--yliu

On Wed, Jan 24, 2018 at 11:33:39PM +0800, Yuanhan Liu wrote:
> Hi,
> 
> FYI, your patch has been queued to LTS release 17.11.1
> 
> 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/26/18. So please
> shout if anyone has objections.
> 
> Thanks.
> 
> 	--yliu
> 
> ---
> >From ec606da5366e96d020817dc0fb52811204662595 Mon Sep 17 00:00:00 2001
> From: Shachar Beiser <shacharbe@mellanox.com>
> Date: Tue, 16 Jan 2018 11:17:52 +0200
> Subject: [PATCH] net/mlx5: fix IPv6 header fields
> 
> [ upstream commit e8aafd9405b9f1da345abd2d5ff0d7aabc1ce6f3 ]
> 
> There are parameters that are not copy from
> spec to verbs structure in the vtc_label
> 
> Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
> 
> Signed-off-by: Shachar Beiser <shacharbe@mellanox.com>
> Acked-by: Yongseok Koh <yskoh@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 00f4bec..654fb1d 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -48,6 +48,7 @@
>  #include <rte_flow.h>
>  #include <rte_flow_driver.h>
>  #include <rte_malloc.h>
> +#include <rte_ip.h>
>  
>  #include "mlx5.h"
>  #include "mlx5_defs.h"
> @@ -1467,6 +1468,8 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
>  		parser->layer = HASH_RXQ_IPV6;
>  	if (spec) {
>  		unsigned int i;
> +		uint32_t vtc_flow_val;
> +		uint32_t vtc_flow_mask;
>  
>  		if (!mask)
>  			mask = default_mask;
> @@ -1478,7 +1481,20 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
>  		       RTE_DIM(ipv6.mask.src_ip));
>  		memcpy(&ipv6.mask.dst_ip, mask->hdr.dst_addr,
>  		       RTE_DIM(ipv6.mask.dst_ip));
> -		ipv6.mask.flow_label = mask->hdr.vtc_flow;
> +		vtc_flow_val = rte_be_to_cpu_32(spec->hdr.vtc_flow);
> +		vtc_flow_mask = rte_be_to_cpu_32(mask->hdr.vtc_flow);
> +		ipv6.val.flow_label =
> +			rte_cpu_to_be_32((vtc_flow_val & IPV6_HDR_FL_MASK) >>
> +					 IPV6_HDR_FL_SHIFT);
> +		ipv6.val.traffic_class = (vtc_flow_val & IPV6_HDR_TC_MASK) >>
> +					 IPV6_HDR_TC_SHIFT;
> +		ipv6.val.next_hdr = spec->hdr.proto;
> +		ipv6.val.hop_limit = spec->hdr.hop_limits;
> +		ipv6.mask.flow_label =
> +			rte_cpu_to_be_32((vtc_flow_mask & IPV6_HDR_FL_MASK) >>
> +					 IPV6_HDR_FL_SHIFT);
> +		ipv6.mask.traffic_class = (vtc_flow_mask & IPV6_HDR_TC_MASK) >>
> +					  IPV6_HDR_TC_SHIFT;
>  		ipv6.mask.next_hdr = mask->hdr.proto;
>  		ipv6.mask.hop_limit = mask->hdr.hop_limits;
>  		/* Remove unwanted bits from values. */
> @@ -1487,6 +1503,7 @@ mlx5_flow_create_ipv6(const struct rte_flow_item *item,
>  			ipv6.val.dst_ip[i] &= ipv6.mask.dst_ip[i];
>  		}
>  		ipv6.val.flow_label &= ipv6.mask.flow_label;
> +		ipv6.val.traffic_class &= ipv6.mask.traffic_class;
>  		ipv6.val.next_hdr &= ipv6.mask.next_hdr;
>  		ipv6.val.hop_limit &= ipv6.mask.hop_limit;
>  	}
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [dpdk-stable] patch 'kni: fix build with kernel 4.15' has been queued to LTS release 17.11.1
@ 2018-01-24 15:31 Yuanhan Liu
  2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' " Yuanhan Liu
  0 siblings, 1 reply; 2+ messages in thread
From: Yuanhan Liu @ 2018-01-24 15:31 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 17.11.1

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/26/18. So please
shout if anyone has objections.

Thanks.

	--yliu

---
>From c4b60502e7135b683f48de568698281b42dd83f6 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
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 <ferruh.yigit@intel.com>
---
 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 99338c5..e0f427a 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 e38a756..443a3f2 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
@@ -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_ */
-- 
2.7.4

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-02-01  9:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-01  9:17 [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' has been queued to LTS release 17.11.1 Yuanhan Liu
  -- strict thread matches above, loose matches on Subject: below --
2018-01-24 15:31 [dpdk-stable] patch 'kni: fix build with kernel 4.15' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' " Yuanhan Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).