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 61D49489EF for ; Mon, 27 Oct 2025 17:23:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5D0D84028B; Mon, 27 Oct 2025 17:23:45 +0100 (CET) Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mails.dpdk.org (Postfix) with ESMTP id D4CB340697 for ; Mon, 27 Oct 2025 17:23:43 +0100 (CET) Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-471b80b994bso68686065e9.3 for ; Mon, 27 Oct 2025 09:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582223; x=1762187023; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IRPs3CjYSLXknEeGKZlVBlWC/6trG2aisfbkQ1Asm5k=; b=dorS1QdTSrXhVxwIdMu0m/HrHl30WYuJ+EE0Ox6Sq/ujEckgNvwOjRe+Vi7NaMiXxM NA/uFQScIm4/Rp2cJOsvIL63fx4d+nLUCrmVZiCZIwGhGA9iejQDO6QNh2A9DivZQyed CxccbCMSWooOtEEW2rhw+LanB5h79qEs/UEBJI+kM8+XAJm6nJZsM74YiOuxpb9yEn3k H2L1Jlge8+kwhAOkNHs2UafjY9kxxTjwEp8VWCrPq8kIL53Bj/wQhbwjnEVPu47PcqHA 1WUtqQ34C9EpTTtRXLj9mwF5OI7sSpsU54PNnOnqvp6Aug8LgTtKLbl8dhPWhA+Fp0BR HZaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582223; x=1762187023; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IRPs3CjYSLXknEeGKZlVBlWC/6trG2aisfbkQ1Asm5k=; b=ashiZXA1vRLOqzPAJB4nTosQETledaK6+qxrHnW9+yYTrOcm3CDJH1XGt48xjfRbX2 bCBNyCgjyxzqc1Y8923Nojw5OjBcbrULe5MJZZ4nbL75i/+dERlxUTp0pYmps6H9hKlP 7DgPi+WutxZBQjHHAy3COX8lrIifs/v/4m1+U9yChlEkJ+aNOeb33Fc6qtTkyWEFbCOW EMEOlUNtblih7/FWK+b+/x4A/vaf8nxG0U+fZ3QGKjJ6neFexWWI4F/AgpD/gIW7NAAB nHdG0D5DVT9fTRsgEFUujI5IavrWxtTUJlGHevM7DOvXmHW740Lw0N+CNkMg2NxYJ+oY Evig== X-Gm-Message-State: AOJu0YxRiRDTh8ZKcYFbQPGEfMoYlgJG0l6eatLBuXc5KxgL1PjLhlFt S27AHeaMTmw3tc/yONbMNtclSQ9+UrJ1pNoM/oqMR9zu9K0vTnw8ImPlGj2QTA== X-Gm-Gg: ASbGncsO/VtJOQ3lLAJhjsOchndLmDNUnMCx72o8DBdXrdld7QcbSnX/rBLdQcoAeyM sYsFDYengnEpOK21f4ULMwu7dS6JaVVgWHaC6ELa91WAMixU4L94Nw4r4T+slFYy7cNjLjoRZDK Dvey2GI8xxoauYsaVOz8jP89efTT3m/I+hk4+NQJDezC5yBhnhVfm+NQkaRdklePkxo7zwZ0n38 aXTVaoCJOGQd0l9wj6Ve85LwC9+30YbHZQGcdxT53WoVrlPNyZER7ts7SJwyqz/9dWrPcZg21Mw 9X2a6oU4SYP2hTto2knGgIS/K0nAzkqgoKRmHSz/btU99zmynGauUhIwRdxaabMfLl3LzXnHd/E lG4DcyofcCfHw+i1tLlxJ4hEV0SjWIgfLHXFfkPmU9bvsSR3sElR7a0IS+1D+eTqy0ka2VEnmee DxZ858Bw== X-Google-Smtp-Source: AGHT+IGbN0eauraMFb2gka04CxqMVojXfWKNKrgKHPm6wBl4aBeqvxch8yR/p6J7N2OaR2leRl8RmA== X-Received: by 2002:a05:600c:848d:b0:475:dc85:4667 with SMTP id 5b1f17b1804b1-47717dff5b7mr2120435e9.15.1761582223075; Mon, 27 Oct 2025 09:23:43 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-475dd02ce46sm173749875e9.3.2025.10.27.09.23.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:23:42 -0700 (PDT) From: luca.boccassi@gmail.com To: Robin Jarry Cc: dpdk stable Subject: patch 'net/tap: fix interrupt callback crash after failed start' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:19:45 +0000 Message-ID: <20251027162001.3710450-67-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Hi, FYI, your patch has been queued to stable release 22.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/25. 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/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/1669b8b486d6a0114a2c21654a1ef5248dca4725 Thanks. Luca Boccassi --- >From 1669b8b486d6a0114a2c21654a1ef5248dca4725 Mon Sep 17 00:00:00 2001 From: Robin Jarry Date: Fri, 17 Oct 2025 14:19:47 +0200 Subject: [PATCH] net/tap: fix interrupt callback crash after failed start [ upstream commit c44ed082917316257dbeb2454414932d39f9c321 ] After moving a tap linux net device to a different namespace, tap_link_set_up fails with an -ENODEV error. Indeed it relies on an ioctl call using the interface name as argument: /* with ifr->ifrn_name = "dtapX" */ ioctl(pmd->ioctl_sock, SIOCGIFFLAGS, ifr) This causes rte_eth_dev_stop() to do nothing since the device is not seen as started. And then, when removing the device, the interrupt callbacks are left there. If they are invoked, they will be so with a "freed" device pointer: Thread 2 "dpdk-intr" hit Breakpoint 1, tap_dev_intr_handler at ../drivers/net/tap/rte_eth_tap.c:1689 1689 struct pmd_internals *pmd = dev->data->dev_private; (gdb) p *dev $2 = { ... data = 0x0, ... state = RTE_ETH_DEV_UNUSED, security_ctx = 0x0 } This causes a crash when dereferencing the data pointer. When tap_link_set_up fails, ensure to unregister the interrupt callbacks that were just reinstalled. Fixes: c0bddd3a057f ("net/tap: add link status notification") Signed-off-by: Robin Jarry --- drivers/net/tap/rte_eth_tap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index 68f9a5ce34..cb7ed40840 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -952,8 +952,10 @@ tap_dev_start(struct rte_eth_dev *dev) return err; err = tap_link_set_up(dev); - if (err) + if (err) { + tap_intr_handle_set(dev, 0); return err; + } for (i = 0; i < dev->data->nb_tx_queues; i++) dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED; -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:37.227582229 +0000 +++ 0067-net-tap-fix-interrupt-callback-crash-after-failed-st.patch 2025-10-27 15:54:34.843950754 +0000 @@ -1 +1 @@ -From c44ed082917316257dbeb2454414932d39f9c321 Mon Sep 17 00:00:00 2001 +From 1669b8b486d6a0114a2c21654a1ef5248dca4725 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit c44ed082917316257dbeb2454414932d39f9c321 ] + @@ -37 +38,0 @@ -Cc: stable@dpdk.org @@ -45 +46 @@ -index 650ddbd706..58d70f7dd6 100644 +index 68f9a5ce34..cb7ed40840 100644 @@ -48 +49 @@ -@@ -889,8 +889,10 @@ tap_dev_start(struct rte_eth_dev *dev) +@@ -952,8 +952,10 @@ tap_dev_start(struct rte_eth_dev *dev)