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