[PATCH v1] event/cnxk: fix setting event attributes in empty get work
Shijith Thotton
sthotton at marvell.com
Thu Apr 27 08:28:17 CEST 2023
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 <sthotton at 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
More information about the stable
mailing list