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 <sthot...@marvell.com>
---
 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

Reply via email to