From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF9E7A00C3 for ; Sun, 5 Jun 2022 09:52:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B3AF94282A; Sun, 5 Jun 2022 09:52:17 +0200 (CEST) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by mails.dpdk.org (Postfix) with ESMTP id 487B140689; Wed, 1 Jun 2022 08:51:50 +0200 (CEST) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id 13C021F987; Wed, 1 Jun 2022 06:51:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1654066310; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAno0PYSwPQCnu97fzC4t4sdddLYFoGjm8PPPLzzw3Q=; b=yK1W25cyBSIl8TKkLtbHkeKYZjXYqcvb1nbhvUQjFOUQaSw1yV8CUuGqrxEuSweze0vqAO jq/x+iZyaAUQ6LG5Qyuc7RmaQbxzjZPYoXf/+n5uRRGsRrAUTT7WuTYu2i3s3Y32kQ55C3 wltEj14EWHnQA1J8HiAPWE17Rw5NEgw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1654066310; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAno0PYSwPQCnu97fzC4t4sdddLYFoGjm8PPPLzzw3Q=; b=fvGVlnqS0ai6l5zMP+/7FxzPXDzIrDetMfd4t13OlchHY6IaBjTkrD2/iGmC4SguQn153L +IFpIWps0AWqIyDA== Received: from localhost.localdomain (unknown [10.100.201.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id E71CC2C141; Wed, 1 Jun 2022 06:51:49 +0000 (UTC) From: Jiri Slaby To: dev@dpdk.org Cc: Jiri Slaby , stable@dpdk.org Subject: [PATCH v3] kni: fix build with Linux 5.18 Date: Wed, 1 Jun 2022 08:51:49 +0200 Message-Id: <20220601065149.8031-1-jslaby@suse.cz> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220525102641.20982-1-jslaby@suse.cz> References: <20220525102641.20982-1-jslaby@suse.cz> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Sun, 05 Jun 2022 09:52:16 +0200 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org 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. There were other attempts to fix this: https://patches.dpdk.org/project/dpdk/patch/20220521070642.35413-1-humin29@huawei.com/ https://patches.dpdk.org/project/dpdk/patch/20220511112334.3233433-1-mingli.yu@windriver.com/ But neither of them ensures netif_rx_ni() is used on older kernel. This might lead to deadlocks or other problems there. Cc: stable@dpdk.org Signed-off-by: Jiri Slaby --- [v3] - reference other patches - switch the #if test expressions to conform to the checker [v2] - forgot to amend the #else/#endif typo fix 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