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: [email protected]

Signed-off-by: Rahul Bhansali <[email protected]>
---
 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

Reply via email to