The eventdev xstats reset API takes an ID of "uint32_t", while
the rest of the xstats APIs require an "unsigned int". On some
platforms these might not be the same bitwidth, however this was
assumed in the code.

Fix by providing a uint32_t to the xstats_reset() function.
Fixes: e21df4b062b5 ("test/eventdev: add SW xstats tests")

Reported-by: Morten Brørup <m...@smartsharesystems.com>
Signed-off-by: Harry van Haaren <harry.van.haa...@intel.com>

---

Note this is a fix for a potential build issue in 64-bit BE systems.

---
 drivers/event/sw/sw_evdev_selftest.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/event/sw/sw_evdev_selftest.c 
b/drivers/event/sw/sw_evdev_selftest.c
index ed7ae6a685..f8496bc44e 100644
--- a/drivers/event/sw/sw_evdev_selftest.c
+++ b/drivers/event/sw/sw_evdev_selftest.c
@@ -1525,10 +1525,11 @@ xstats_id_reset_tests(struct test *t)
                                dev_names[i], dev_expected[i], val);
                        goto fail;
                }
-               /* reset to zero */
+               /* reset to zero: note API requires uint32_t not unsigned int */
+               uint32_t reset_id = id;
                int reset_ret = rte_event_dev_xstats_reset(evdev,
                                                RTE_EVENT_DEV_XSTATS_DEVICE, 0,
-                                               &id,
+                                               &reset_id,
                                                1);
                if (reset_ret) {
                        printf("%d: failed to reset successfully\n", __LINE__);
@@ -1647,10 +1648,11 @@ xstats_id_reset_tests(struct test *t)
                                port_expected[i], id);
                        failed = 1;
                }
-               /* reset to zero */
+               /* reset to zero: note API requires uint32_t not unsigned int */
+               uint32_t reset_id = id;
                int reset_ret = rte_event_dev_xstats_reset(evdev,
                                                RTE_EVENT_DEV_XSTATS_PORT, PORT,
-                                               &id,
+                                               &reset_id,
                                                1);
                if (reset_ret) {
                        printf("%d: failed to reset successfully\n", __LINE__);
@@ -1762,10 +1764,11 @@ xstats_id_reset_tests(struct test *t)
                                queue_names[i], queue_expected[i], val);
                        failed = 1;
                }
-               /* reset to zero */
+               /* reset to zero: note API requires uint32_t not unsigned int */
+               uint32_t reset_id = id;
                int reset_ret = rte_event_dev_xstats_reset(evdev,
                                                RTE_EVENT_DEV_XSTATS_QUEUE,
-                                               queue, &id, 1);
+                                               queue, &reset_id, 1);
                if (reset_ret) {
                        printf("%d: failed to reset successfully\n", __LINE__);
                        failed = 1;
-- 
2.34.1

Reply via email to