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