* [dpdk-dev] [PATCH] net/cnxk: fix aged flows query
@ 2024-02-02 5:21 psatheesh
2024-02-02 12:35 ` Jerin Jacob
0 siblings, 1 reply; 2+ messages in thread
From: psatheesh @ 2024-02-02 5:21 UTC (permalink / raw)
To: Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
Cc: dev, Satheesh Paul, stable
From: Satheesh Paul <psatheesh@marvell.com>
After all aged flows are destroyed, the aged_flows bitmap
is free-ed. Querying aged flows tries to access this bitmap
resulting in a segmentation fault. Fixing this by not accessing
the bitmap if no aged flows are present.
Fixes: 357f5ebc8a24 ("common/cnxk: support flow aging")
Cc: stable@dpdk.org
Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Kiran Kumar K <kirankumark@marvell.com>
---
drivers/common/cnxk/roc_npc_aging.c | 4 ++++
drivers/net/cnxk/cnxk_flow.c | 3 +++
2 files changed, 7 insertions(+)
diff --git a/drivers/common/cnxk/roc_npc_aging.c b/drivers/common/cnxk/roc_npc_aging.c
index 254dd2139b..e0f2dc2291 100644
--- a/drivers/common/cnxk/roc_npc_aging.c
+++ b/drivers/common/cnxk/roc_npc_aging.c
@@ -234,8 +234,11 @@ npc_age_flow_list_entry_delete(struct roc_npc *roc_npc,
{
struct npc *npc = roc_npc_to_npc_priv(roc_npc);
struct npc_age_flow_list_head *list;
+ struct roc_npc_flow_age *flow_age;
struct npc_age_flow_entry *curr;
+ flow_age = &roc_npc->flow_age;
+
list = &npc->age_flow_list;
curr = TAILQ_FIRST(list);
@@ -244,6 +247,7 @@ npc_age_flow_list_entry_delete(struct roc_npc *roc_npc,
while (curr) {
if (flow->mcam_id == curr->flow->mcam_id) {
+ plt_bitmap_clear(flow_age->aged_flows, flow->mcam_id);
TAILQ_REMOVE(list, curr, next);
plt_free(curr);
break;
diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c
index a92b61c332..4deccd1a67 100644
--- a/drivers/net/cnxk/cnxk_flow.c
+++ b/drivers/net/cnxk/cnxk_flow.c
@@ -616,6 +616,9 @@ cnxk_flow_get_aged_flows(struct rte_eth_dev *eth_dev, void **context,
flow_age = &roc_npc->flow_age;
+ if (!flow_age->age_flow_refcnt)
+ return 0;
+
do {
sn = plt_seqcount_read_begin(&flow_age->seq_cnt);
--
2.39.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dpdk-dev] [PATCH] net/cnxk: fix aged flows query
2024-02-02 5:21 [dpdk-dev] [PATCH] net/cnxk: fix aged flows query psatheesh
@ 2024-02-02 12:35 ` Jerin Jacob
0 siblings, 0 replies; 2+ messages in thread
From: Jerin Jacob @ 2024-02-02 12:35 UTC (permalink / raw)
To: psatheesh
Cc: Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao,
dev, stable
On Fri, Feb 2, 2024 at 10:51 AM <psatheesh@marvell.com> wrote:
>
> From: Satheesh Paul <psatheesh@marvell.com>
>
> After all aged flows are destroyed, the aged_flows bitmap
> is free-ed. Querying aged flows tries to access this bitmap
> resulting in a segmentation fault. Fixing this by not accessing
> the bitmap if no aged flows are present.
>
> Fixes: 357f5ebc8a24 ("common/cnxk: support flow aging")
> Cc: stable@dpdk.org
>
> Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
> Reviewed-by: Kiran Kumar K <kirankumark@marvell.com>
Applied to dpdk-next-net-mrvl/for-main. Thanks
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-02-02 12:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-02 5:21 [dpdk-dev] [PATCH] net/cnxk: fix aged flows query psatheesh
2024-02-02 12:35 ` Jerin Jacob
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).