dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kni: fix build with Linux 5.18
@ 2022-05-25 10:12 Jiri Slaby
  2022-05-25 10:26 ` [PATCH v2] " Jiri Slaby
  2022-06-05  7:54 ` [PATCH v3] kni: fix build with Linux 5.18 Andrew Rybchenko
  0 siblings, 2 replies; 14+ messages in thread
From: Jiri Slaby @ 2022-05-25 10:12 UTC (permalink / raw)
  To: dev; +Cc: Jiri Slaby, stable

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.

Cc: stable@dpdk.org
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 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 664785674ff1..a81846a8a895 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 LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+#define HAVE_NETIF_RX_NI
+#endif
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 29e5b9e21f9e..a8b092b7567d 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -441,7 +441,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.36.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread
* [PATCH] kni: fix build
@ 2014-11-07 14:51 Thomas Monjalon
       [not found] ` <1415371867-3730-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Monjalon @ 2014-11-07 14:51 UTC (permalink / raw)
  To: dev-VfR2kkLFssw

Since commit 08b563ffb19 ("mbuf: replace data pointer by an offset"),
KNI vhost compilation (CONFIG_RTE_KNI_VHOST=y) was broken.

rte_pktmbuf_mtod() is not used in the kernel context but is replaced
by a simple addition of the base address and the offset.

Signed-off-by: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_eal/linuxapp/kni/kni_vhost.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
index fe512c2..7bcc985 100644
--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
@@ -104,7 +104,8 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
 		void *data_kva;
 
 		pkt_kva = (void *)pkt_va - kni->mbuf_va + kni->mbuf_kva;
-		data_kva = pkt_kva->data - kni->mbuf_va + kni->mbuf_kva;
+		data_kva = pkt_kva->buf_addr + pkt_kva->data_off
+		           - kni->mbuf_va + kni->mbuf_kva;
 
 		memcpy_fromiovecend(data_kva, iov, offset, len);
 		if (unlikely(len < ETH_ZLEN)) {
@@ -177,7 +178,7 @@ kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov,
 	KNI_DBG_RX("rx offset=%d, len=%d, pkt_len=%d, iovlen=%d\n",
 		   offset, len, pkt_len, (int)iov->iov_len);
 
-	data_kva = kva->data - kni->mbuf_va + kni->mbuf_kva;
+	data_kva = kva->buf_addr + kva->data_off - kni->mbuf_va + kni->mbuf_kva;
 	if (unlikely(memcpy_toiovecend(iov, data_kva, offset, pkt_len)))
 		goto drop;
 
-- 
2.1.3

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

end of thread, other threads:[~2022-06-07  8:14 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-25 10:12 [PATCH] kni: fix build with Linux 5.18 Jiri Slaby
2022-05-25 10:26 ` [PATCH v2] " Jiri Slaby
2022-05-31 16:25   ` Ferruh Yigit
2022-06-01  6:51   ` [PATCH v3] " Jiri Slaby
2022-06-01  6:53     ` [PATCH v4] " Jiri Slaby
2022-06-05  8:22       ` Andrew Rybchenko
2022-06-06  5:59         ` Jiri Slaby
2022-06-06 16:20           ` Andrew Rybchenko
2022-06-06 10:46         ` [PATCH] kni: fix build Thomas Monjalon
2022-06-05  7:54 ` [PATCH v3] kni: fix build with Linux 5.18 Andrew Rybchenko
2022-06-05  8:20   ` Andrew Rybchenko
  -- strict thread matches above, loose matches on Subject: below --
2014-11-07 14:51 [PATCH] kni: fix build Thomas Monjalon
     [not found] ` <1415371867-3730-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-07 15:07   ` Olivier MATZ
     [not found]     ` <545CE01F.2060509-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-10  9:29       ` Thomas Monjalon

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).