From: Gregory Etelson <getelson@nvidia.com>
To: <dev@dpdk.org>
Cc: getelson@nvidia.com, <mkashani@nvidia.com>,
rasland@nvidia.com, stable@dpdk.org,
"Dariusz Sosnowski" <dsosnowski@nvidia.com>,
"Viacheslav Ovsiienko" <viacheslavo@nvidia.com>,
"Bing Zhao" <bingz@nvidia.com>, "Ori Kam" <orika@nvidia.com>,
"Suanming Mou" <suanmingm@nvidia.com>,
"Matan Azrad" <matan@nvidia.com>
Subject: [PATCH] net/mlx5: fix access to auxiliary flow data
Date: Wed, 25 Jun 2025 12:43:39 +0300 [thread overview]
Message-ID: <20250625094339.344416-1-getelson@nvidia.com> (raw)
The MLX5 PMD keeps non-essential flow data in an auxiliary structure
to reduce flow L1 cache usage.
The auxiliary data location differs in HWS and non-template flows.
The PMD tried to fetch HWS flow table from a non-template flow object
and accessed stale memory address.
The patch separates the `mlx5_flow_hw_aux()` implementation for HWS
and non-template flows
Fixes: 27d171b88031 ("net/mlx5: abstract flow action and enable reconfigure")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index af2e7a84a5..d65f4cf4e2 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -129,12 +129,16 @@ mlx5_flow_hw_aux(uint16_t port_id, struct rte_flow_hw *flow)
{
struct rte_flow_template_table *table = flow->table;
- if (rte_flow_template_table_resizable(port_id, &table->cfg.attr)) {
- size_t offset = sizeof(struct rte_flow_hw) + mlx5dr_rule_get_handle_size();
+ if (!flow->nt_rule) {
+ if (rte_flow_template_table_resizable(port_id, &table->cfg.attr)) {
+ size_t offset = sizeof(struct rte_flow_hw) + mlx5dr_rule_get_handle_size();
- return RTE_PTR_ADD(flow, offset);
+ return RTE_PTR_ADD(flow, offset);
+ } else {
+ return &table->flow_aux[flow->idx - 1];
+ }
} else {
- return ((flow->nt_rule) ? flow->nt2hws->flow_aux : &table->flow_aux[flow->idx - 1]);
+ return flow->nt2hws->flow_aux;
}
}
--
2.48.1
next reply other threads:[~2025-06-25 9:44 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 9:43 Gregory Etelson [this message]
2025-06-26 12:52 ` [PATCH] net/mlx5: fix access to auxiliary flow data Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250625094339.344416-1-getelson@nvidia.com \
--to=getelson@nvidia.com \
--cc=bingz@nvidia.com \
--cc=dev@dpdk.org \
--cc=dsosnowski@nvidia.com \
--cc=matan@nvidia.com \
--cc=mkashani@nvidia.com \
--cc=orika@nvidia.com \
--cc=rasland@nvidia.com \
--cc=stable@dpdk.org \
--cc=suanmingm@nvidia.com \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.