Even when no events are dequeued, it is important to update event
attributes as they provide valuable information for checking the work
slot state and other attributes.
Fixes: c0a9774f030d ("event/cnxk: move post-processing to separate function")
Signed-off-by: Shijith Thotton <[email protected]>
---
drivers/event/cnxk/cn10k_worker.h | 3 +++
drivers/event/cnxk/cn9k_worker.h | 6 ++++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/event/cnxk/cn10k_worker.h
b/drivers/event/cnxk/cn10k_worker.h
index 06c71c6092..beae2be903 100644
--- a/drivers/event/cnxk/cn10k_worker.h
+++ b/drivers/event/cnxk/cn10k_worker.h
@@ -282,6 +282,9 @@ cn10k_sso_hws_get_work_empty(struct cn10k_sso_hws *ws,
struct rte_event *ev,
ws->gw_rdata = gw.u64[0];
if (gw.u64[1])
cn10k_sso_hws_post_process(ws, gw.u64, flags);
+ else
+ gw.u64[0] = (gw.u64[0] & (0x3ull << 32)) << 6 |
+ (gw.u64[0] & (0x3FFull << 36)) << 4 | (gw.u64[0] &
0xffffffff);
ev->event = gw.u64[0];
ev->u64 = gw.u64[1];
diff --git a/drivers/event/cnxk/cn9k_worker.h b/drivers/event/cnxk/cn9k_worker.h
index 1ce4b044e8..47eea70b5f 100644
--- a/drivers/event/cnxk/cn9k_worker.h
+++ b/drivers/event/cnxk/cn9k_worker.h
@@ -353,8 +353,10 @@ cn9k_sso_hws_get_work_empty(uint64_t base, struct
rte_event *ev,
#endif
if (gw.u64[1])
- cn9k_sso_hws_post_process(gw.u64, mbuf, flags, lookup_mem,
- tstamp);
+ cn9k_sso_hws_post_process(gw.u64, mbuf, flags, lookup_mem,
tstamp);
+ else
+ gw.u64[0] = (gw.u64[0] & (0x3ull << 32)) << 6 |
+ (gw.u64[0] & (0x3FFull << 36)) << 4 | (gw.u64[0] &
0xffffffff);
ev->event = gw.u64[0];
ev->u64 = gw.u64[1];
--
2.25.1