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 2674146AD8 for ; Thu, 3 Jul 2025 13:58:07 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09CE640264; Thu, 3 Jul 2025 13:58:07 +0200 (CEST) Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by mails.dpdk.org (Postfix) with ESMTP id E5E6B40264 for ; Thu, 3 Jul 2025 13:58:05 +0200 (CEST) Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-701046cfeefso66502326d6.2 for ; Thu, 03 Jul 2025 04:58:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uetpeshawar-edu-pk.20230601.gappssmtp.com; s=20230601; t=1751543885; x=1752148685; darn=dpdk.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GEQaV//p9e8Gb7kGUVPtGmHiBT4iTBTxDPeDSsZ2GGg=; b=PMEG3OrAiApdmwc6AwYE8Q7Fovaq0m9b71ibrEB22b5uL1IYcCfR3A0p78vIn6OzlP ukie5a7/TuVfuJ7mVWiArMF0scFWN+CDbU3oULPIRkhcmo8V2W3A38TSUYM5k1SakIov Jc1oatMkPj3hDI2gxpUdwDYIz+vPtz0aOJoVe2fetuiEw2Bz68amQyIADy5rwogSxhgv H+eZ+30Efv75rWXwZ8J4IODSPB09zGlqNstGiHiUtl8ebn0EIDgvATIaMwMwUG7o07TQ n/bXWkaoQxitcqFvd0mnciXy08/YQKNCgS2jilXxIGwkVAkM5KR4cgXvlC/ZTfnLkQsj j28g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751543885; x=1752148685; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GEQaV//p9e8Gb7kGUVPtGmHiBT4iTBTxDPeDSsZ2GGg=; b=jnqEoU3v1tvb8opg976ej7BUN0vGWrntPDipTKdwDirAXROP+6Z6nKnFSDHELaWjy0 CZiOwxr9nFb+02Hfmu6rpdpExsD1R23x08dwcYqrV2eZALUI54kNeCQhNT+xcixRHehq WIru7mVCyiAotsSh7AZ3HfYHOiezsb1M0B5+VjEMt5ehQbjo58PKWTU+H1jhuYGTSkd7 OU4kIIUdWXz7+f23hrQJ6P7RHNw5HQrYEO6qmPPtv3h2TAYz+S0yaHcxYko7WxriZGo1 xOvV6GE7BzXmmlgiv+IB5/zluUVFAOBTEzXQfw5Z85G+zrEAUV1HZtrsPaKRVoqZVpp3 LzqA== X-Forwarded-Encrypted: i=1; AJvYcCXaKCrciOmOjJi3sdQiYLTZyZa4eoIfBoKhwxN5yhBgyKHPwBE0q+7yGJrEV2hVz89ClzbFJrE=@dpdk.org X-Gm-Message-State: AOJu0YwpbRp2w7vF9rE3maXEYJsz0Iz9kG71PPI+kxt2wrtAwnjbru8F o85QzuL8QPY1HLyU27aZldyGEZ3DTmqcu1FIx/9na+DBBcR2qa4fwIUO/hxdWUvyreXlB3z2yz4 ZN/gr9dvQrvbhBHQl75iXB5AsP9Tf/4UbzY6T4N+Dyg== X-Gm-Gg: ASbGncvFMbKkbh2aUiiANLnHEzZnUdXFefnrJksSZr5TRbJdYtS1+5jQjXTuwOTli6e Lv4v8rMHi5Xfhd/0meR4fs4FRG3QU50CipM/spubpjGt3R/ciUtTBiQvA255KghikE7jUfFFgaz OtSLGo8bYlpak2g3hR6Xdjvza/bvFjuJMZ4rdkcMVXFXL8Aw== X-Google-Smtp-Source: AGHT+IGV55ZU+FV++20zym0VDjH/7SEe1r4x9fFPADb0qkF4Zm1J5vYkM9YqI37bzcWAko+cboV9vSG5ycEmhS5cl9w= X-Received: by 2002:a05:6214:1c86:b0:6f8:af20:367d with SMTP id 6a1803df08f44-702bcb3eb6emr47075496d6.39.1751543885229; Thu, 03 Jul 2025 04:58:05 -0700 (PDT) MIME-Version: 1.0 References: <20250612210733.2506558-72-luca.boccassi@gmail.com> <20250630122556.1133654-1-luca.boccassi@gmail.com> <20250630122556.1133654-2-luca.boccassi@gmail.com> In-Reply-To: From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> Date: Thu, 3 Jul 2025 16:57:52 +0500 X-Gm-Features: Ac12FXwnNJkJmt2C1FjSAVkbedp3qp0cmjtGnLDRHsPP40lYypIuBYERIwcSCR8 Message-ID: Subject: Re: patch 'net/mlx5: fix crash on age query with indirect conntrack' has been queued to stable release 22.11.9 To: luca.boccassi@gmail.com Cc: Dariusz Sosnowski , dpdk stable Content-Type: multipart/alternative; boundary="00000000000016815906390517fc" 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 --00000000000016815906390517fc Content-Type: text/plain; charset="UTF-8" Hi Luca Boccassi, Sorry to interrupt you again. Please apply the patch to dpdk-stable. Regards, Khadem On Wed, Jul 2, 2025, 20:32 Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> wrote: > Hi Luca Boccassi > > I think the page is still in queue. Please apply it to dpdk-stable. > > Regards, > Khadem > > On Mon, Jun 30, 2025, 17:26 wrote: > >> Hi, >> >> FYI, your patch has been queued to stable release 22.11.9 >> >> 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/02/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/ab74ac87bc7fe0554e3a2e0e6c94558647b9770d >> >> Thanks. >> >> Luca Boccassi >> >> --- >> From ab74ac87bc7fe0554e3a2e0e6c94558647b9770d Mon Sep 17 00:00:00 2001 >> From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> >> Date: Thu, 26 Jun 2025 09:07:02 -0400 >> Subject: [PATCH] net/mlx5: fix crash on age query with indirect conntrack >> >> [ upstream commit 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 ] >> >> This patch fixes a segmentation fault that occurs when querying the >> AGE action of a flow rule that uses indirect connection tracking (CT). >> >> Background: >> AGE and CT indices share a union in the mlx5 flow struct. When using CT >> without age, the age index is invalid. Querying AGE in this case leads >> to a crash due to reading an invalid pointer. >> >> Solution: >> Add a check in `flow_dv_query()` to prevent AGE queries on indirect CT >> actions. This is the correct fix rather than null-checking the pool. >> >> Steps to reproduce: >> 1. Create an indirect CT action: >> flow indirect_action 0 create ingress action conntrack / end >> >> 2. Create a root rule with jump: >> flow create 0 ingress pattern eth / ipv4 / tcp / end actions jump >> group 3 / end >> >> 3. Create a group 3 rule using the indirect action: >> flow create 0 group 3 ingress pattern eth / ipv4 / tcp / end actions >> indirect 0 / jump group 5 / end >> >> 4. Create a group 5 rule matching CT state: >> flow create 0 group 5 ingress pattern eth / ipv4 / tcp / conntrack is >> 1 / end actions queue index 5 / end >> >> 5. Querying the first rule causes segfault: >> flow query 0 1 age >> >> Fixes: 2d084f69aa26 ("net/mlx5: add translation of connection tracking >> action") >> >> Signed-off-by: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> >> Acked-by: Dariusz Sosnowski >> --- >> .mailmap | 1 + >> drivers/net/mlx5/mlx5_flow_dv.c | 5 +++++ >> 2 files changed, 6 insertions(+) >> >> diff --git a/.mailmap b/.mailmap >> index 7e6ada5733..9a89b1a12e 100644 >> --- a/.mailmap >> +++ b/.mailmap >> @@ -736,6 +736,7 @@ Kevin Scott >> Kevin Traynor >> Ke Xu >> Ke Zhang >> +Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> >> Khoa To >> Kiran KN >> Kiran Kumar K >> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c >> b/drivers/net/mlx5/mlx5_flow_dv.c >> index d11e39431f..f3a76f9e93 100644 >> --- a/drivers/net/mlx5/mlx5_flow_dv.c >> +++ b/drivers/net/mlx5/mlx5_flow_dv.c >> @@ -16950,6 +16950,11 @@ flow_dv_query(struct rte_eth_dev *dev, >> error); >> break; >> case RTE_FLOW_ACTION_TYPE_AGE: >> + if (flow->indirect_type == >> MLX5_INDIRECT_ACTION_TYPE_CT) >> + return rte_flow_error_set(error, ENOTSUP, >> + >> RTE_FLOW_ERROR_TYPE_ACTION, >> + actions, >> + "age not available"); >> ret = flow_dv_query_age(dev, flow, data, error); >> break; >> default: >> -- >> 2.47.2 >> >> --- >> Diff of the applied patch vs upstream commit (please double-check if >> non-empty: >> --- >> --- - 2025-06-30 13:21:21.850344929 +0100 >> +++ 0002-net-mlx5-fix-crash-on-age-query-with-indirect-conntr.patch >> 2025-06-30 13:21:21.739057181 +0100 >> @@ -1 +1 @@ >> -From 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 Mon Sep 17 00:00:00 2001 >> +From ab74ac87bc7fe0554e3a2e0e6c94558647b9770d Mon Sep 17 00:00:00 2001 >> @@ -5,0 +6,2 @@ >> +[ upstream commit 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 ] >> + >> @@ -35 +36,0 @@ >> -Cc: stable@dpdk.org >> @@ -45 +46 @@ >> -index 8483d96ec5..6126f7e472 100644 >> +index 7e6ada5733..9a89b1a12e 100644 >> @@ -48 +49 @@ >> -@@ -812,6 +812,7 @@ Kevin Scott >> +@@ -736,6 +736,7 @@ Kevin Scott >> @@ -55 +56 @@ >> - Kiran Kumar K < >> kkokkilagadda@caviumnetworks.com> >> + Kiran Kumar K >> @@ -57 +58 @@ >> -index d555a9cdcb..7b9e5018b8 100644 >> +index d11e39431f..f3a76f9e93 100644 >> @@ -60 +61 @@ >> -@@ -18146,6 +18146,11 @@ flow_dv_query(struct rte_eth_dev *dev, >> +@@ -16950,6 +16950,11 @@ flow_dv_query(struct rte_eth_dev *dev, >> > --00000000000016815906390517fc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Luca Boccassi,

<= div dir=3D"auto">Sorry to interrupt you again.=C2=A0
Please apply the patch to dpdk-stable.=C2=A0

Regards,=C2=A0
Khadem=C2=A0


Hi,

FYI, your patch has been queued to stable release 22.11.9

Note it hasn't been pushed to http://dpd= k.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/02/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 rebasi= ng
(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/ab74ac87bc7fe0554e3a2e0e6= c94558647b9770d

Thanks.

Luca Boccassi

---
>From ab74ac87bc7fe0554e3a2e0e6c94558647b9770d Mon Sep 17 00:00:00 2001
From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.p= k>
Date: Thu, 26 Jun 2025 09:07:02 -0400
Subject: [PATCH] net/mlx5: fix crash on age query with indirect conntrack
[ upstream commit 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 ]

This patch fixes a segmentation fault that occurs when querying the
AGE action of a flow rule that uses indirect connection tracking (CT).

Background:
AGE and CT indices share a union in the mlx5 flow struct. When using CT
without age, the age index is invalid. Querying AGE in this case leads
to a crash due to reading an invalid pointer.

Solution:
Add a check in `flow_dv_query()` to prevent AGE queries on indirect CT
actions. This is the correct fix rather than null-checking the pool.

Steps to reproduce:
=C2=A01. Create an indirect CT action:
=C2=A0 =C2=A0 flow indirect_action 0 create ingress action conntrack / end<= br>
=C2=A02. Create a root rule with jump:
=C2=A0 =C2=A0 flow create 0 ingress pattern eth / ipv4 / tcp / end actions = jump group 3 / end

=C2=A03. Create a group 3 rule using the indirect action:
=C2=A0 =C2=A0 flow create 0 group 3 ingress pattern eth / ipv4 / tcp / end = actions indirect 0 / jump group 5 / end

=C2=A04. Create a group 5 rule matching CT state:
=C2=A0 =C2=A0 flow create 0 group 5 ingress pattern eth / ipv4 / tcp / conn= track is 1 / end actions queue index 5 / end

=C2=A05. Querying the first rule causes segfault:
=C2=A0 =C2=A0 flow query 0 1 age

Fixes: 2d084f69aa26 ("net/mlx5: add translation of connection tracking= action")

Signed-off-by: Khadem Ullah <14pwcse1224@uetpesha= war.edu.pk>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>=
---
=C2=A0.mailmap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 | 1 +
=C2=A0drivers/net/mlx5/mlx5_flow_dv.c | 5 +++++
=C2=A02 files changed, 6 insertions(+)

diff --git a/.mailmap b/.mailmap
index 7e6ada5733..9a89b1a12e 100644
--- a/.mailmap
+++ b/.mailmap
@@ -736,6 +736,7 @@ Kevin Scott <kevin.c.scott@intel.com= >
=C2=A0Kevin Traynor <ktraynor@redhat.com>
=C2=A0Ke Xu <ke1.xu@intel.com>
=C2=A0Ke Zhang <ke1x.zhang@intel.com>
+Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk= >
=C2=A0Khoa To <khot@microsoft.com>
=C2=A0Kiran KN <kirankn@juniper.net>
=C2=A0Kiran Kumar K <kirankumark@marvell.com>
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_d= v.c
index d11e39431f..f3a76f9e93 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -16950,6 +16950,11 @@ flow_dv_query(struct rte_eth_dev *dev,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 error);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 break;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 case RTE_FLOW_ACTIO= N_TYPE_AGE:
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0if (flow->indirect_type =3D=3D MLX5_INDIRECT_ACTION_TYPE_CT) +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return rte_flow_error_set(error, ENOT= SUP,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0RTE_FLOW_ERROR_TYPE_ACTION,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0actions,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0"age not available");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 ret =3D flow_dv_query_age(dev, flow, data, error);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 break;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 default:
--
2.47.2

---
=C2=A0 Diff of the applied patch vs upstream commit (please double-check if= non-empty:
---
--- -=C2=A0 =C2=A02025-06-30 13:21:21.850344929 +0100
+++ 0002-net-mlx5-fix-crash-on-age-query-with-indirect-conntr.patch=C2=A0 = =C2=A0 =C2=A02025-06-30 13:21:21.739057181 +0100
@@ -1 +1 @@
-From 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 Mon Sep 17 00:00:00 2001
+From ab74ac87bc7fe0554e3a2e0e6c94558647b9770d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3bb6e3bf05284f0668e2ac14ce4b90a2909dff99 ]
+
@@ -35 +36,0 @@
-Cc: stable@dpdk.org
@@ -45 +46 @@
-index 8483d96ec5..6126f7e472 100644
+index 7e6ada5733..9a89b1a12e 100644
@@ -48 +49 @@
-@@ -812,6 +812,7 @@ Kevin Scott <kevin.c.scott@intel.co= m>
+@@ -736,6 +736,7 @@ Kevin Scott <kevin.c.scott@intel.co= m>
@@ -55 +56 @@
- Kiran Kumar K <kirankumark@marvell.com> <kkokkilagadda@caviumnetworks.com> <kiran.kokkilagadda@caviumnetworks.com>
+ Kiran Kumar K <kirankumark@marvell.com>
@@ -57 +58 @@
-index d555a9cdcb..7b9e5018b8 100644
+index d11e39431f..f3a76f9e93 100644
@@ -60 +61 @@
-@@ -18146,6 +18146,11 @@ flow_dv_query(struct rte_eth_dev *dev,
+@@ -16950,6 +16950,11 @@ flow_dv_query(struct rte_eth_dev *dev,
--00000000000016815906390517fc--