[PATCH] event/cnxk: fix segfault for null pointer access

Rahul Bhansali rbhansali at marvell.com
Wed Mar 4 11:12:31 CET 2026


The field evdev_priv will have valid event dev pointer only when
eth_rx_adapter_queue_add() is called.
In case of poll mode tests, queue add will not be called so this
will be NULL.
It is fixed by having a NULL check before access.

Fixes: 01a990fe40e8 ("event/cnxk: fix OOP handling in event mode")
Cc: stable at dpdk.org

Signed-off-by: Rahul Bhansali <rbhansali at marvell.com>
---
 drivers/event/cnxk/cn10k_eventdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 0c1431b4e7..2e4b8aab92 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -675,8 +675,12 @@ cn10k_sso_rx_offload_cb(uint16_t port_id, uint64_t flags)
 	struct rte_eth_dev *dev = &rte_eth_devices[port_id];
 	struct cnxk_eth_dev *cnxk_eth_dev = dev->data->dev_private;
 	struct rte_eventdev *event_dev = cnxk_eth_dev->evdev_priv;
-	struct cnxk_sso_evdev *evdev = cnxk_sso_pmd_priv(event_dev);
+	struct cnxk_sso_evdev *evdev;
+
+	if (event_dev == NULL)
+		return;
 
+	evdev = cnxk_sso_pmd_priv(event_dev);
 	evdev->rx_offloads |= flags;
 	cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
 	eventdev_fops_update(event_dev);
-- 
2.34.1



More information about the dev mailing list