patch 'kni: fix build with Linux 5.18' has been queued to stable release 19.11.13

christian.ehrhardt at canonical.com christian.ehrhardt at canonical.com
Thu Jul 7 09:54:40 CEST 2022


Hi,

FYI, your patch has been queued to stable release 19.11.13

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/09/22. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/104eedad56662727ead7c3375d6eba4a26c8734b

Thanks.

Christian Ehrhardt <christian.ehrhardt at canonical.com>

---
>From 104eedad56662727ead7c3375d6eba4a26c8734b Mon Sep 17 00:00:00 2001
From: Jiri Slaby <jslaby at suse.cz>
Date: Wed, 1 Jun 2022 08:53:58 +0200
Subject: [PATCH] kni: fix build with Linux 5.18

[ upstream commit c98600d4bed6d15599e448990f2ba117ca938a2d ]

Since commit 2655926aea9b (net: Remove netif_rx_any_context() and
netif_rx_ni().) in 5.18, netif_rx_ni() no longer exists as netif_rx()
can be called from any context. So define HAVE_NETIF_RX_NI for older
releases and call the appropriate function in kni_net.

netif_rx_ni() must be used on older kernel since netif_rx() might
might lead to deadlocks or other problems there.

Signed-off-by: Jiri Slaby <jslaby at suse.cz>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
---
 kernel/linux/kni/compat.h  | 4 ++++
 kernel/linux/kni/kni_net.c | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
index 664785674f..0db29a4a6f 100644
--- a/kernel/linux/kni/compat.h
+++ b/kernel/linux/kni/compat.h
@@ -141,3 +141,7 @@
 #if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE
 #define HAVE_TSK_IN_GUP
 #endif
+
+#if KERNEL_VERSION(5, 18, 0) > LINUX_VERSION_CODE
+#define HAVE_NETIF_RX_NI
+#endif
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index c8bad5f197..e54864c977 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -411,7 +411,11 @@ kni_net_rx_normal(struct kni_dev *kni)
 		skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 		/* Call netif interface */
+#ifdef HAVE_NETIF_RX_NI
 		netif_rx_ni(skb);
+#else
+		netif_rx(skb);
+#else
 
 		/* Update statistics */
 		dev->stats.rx_bytes += len;
-- 
2.37.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-07-07 09:54:13.079372011 +0200
+++ 0045-kni-fix-build-with-Linux-5.18.patch	2022-07-07 09:54:10.921824345 +0200
@@ -1 +1 @@
-From c98600d4bed6d15599e448990f2ba117ca938a2d Mon Sep 17 00:00:00 2001
+From 104eedad56662727ead7c3375d6eba4a26c8734b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c98600d4bed6d15599e448990f2ba117ca938a2d ]
+
@@ -14,2 +15,0 @@
-Cc: stable at dpdk.org
-
@@ -36 +36 @@
-index 29e5b9e21f..a8b092b756 100644
+index c8bad5f197..e54864c977 100644
@@ -39 +39 @@
-@@ -441,7 +441,11 @@ kni_net_rx_normal(struct kni_dev *kni)
+@@ -411,7 +411,11 @@ kni_net_rx_normal(struct kni_dev *kni)


More information about the stable mailing list