[PATCH v2 20/22] event/cnxk: fix Klocwork static analysis issues
Rahul Bhansali
rbhansali at marvell.com
Thu Jun 11 16:20:27 CEST 2026
From: Aarnav JP <ajp at marvell.com>
Cast uint16_t operands to uint64_t before bitwise OR with
uint64_t rx_offloads to fix operand size mismatches. Add NULL
check for bracket parser end pointer to prevent undefined
behavior from pointer comparison with NULL.
Fixes: 697883bcb0a8 ("event/cnxk: fix Rx timestamp handling")
Fixes: fe7ed2ebbf37 ("event/cnxk: set Rx offload flags")
Fixes: 38c2e3240ba8 ("event/cnxk: add option to control SSO HWGRP QoS")
Fixes: 8a3d58c189fd ("event/cnxk: add option to control timer adapters")
Cc: stable at dpdk.org
Signed-off-by: Aarnav JP <ajp at marvell.com>
---
Changes in v2: No change.
drivers/event/cnxk/cn10k_eventdev.c | 2 +-
drivers/event/cnxk/cnxk_eventdev.c | 2 +-
drivers/event/cnxk/cnxk_eventdev_adptr.c | 4 ++--
drivers/event/cnxk/cnxk_tim_evdev.c | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 2e4b8aab92..62fea93b0b 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -660,7 +660,7 @@ cn10k_sso_tstamp_hdl_update(uint16_t port_id, uint16_t flags, bool ptp_en)
struct rte_eventdev *event_dev = cnxk_eth_dev->evdev_priv;
struct cnxk_sso_evdev *evdev = cnxk_sso_pmd_priv(event_dev);
- evdev->rx_offloads |= flags;
+ evdev->rx_offloads |= (uint64_t)flags;
if (ptp_en)
evdev->tstamp[port_id] = &cnxk_eth_dev->tstamp;
else
diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c
index be6a487b59..4aa16f9026 100644
--- a/drivers/event/cnxk/cnxk_eventdev.c
+++ b/drivers/event/cnxk/cnxk_eventdev.c
@@ -566,7 +566,7 @@ parse_list(const char *value, void *opaque, param_parse_t fn)
else if (*s == ']')
end = s;
- if (start && start < end) {
+ if (start && end && start < end) {
*end = 0;
fn(start + 1, opaque);
s = end;
diff --git a/drivers/event/cnxk/cnxk_eventdev_adptr.c b/drivers/event/cnxk/cnxk_eventdev_adptr.c
index 8536dee5bf..5678e5d264 100644
--- a/drivers/event/cnxk/cnxk_eventdev_adptr.c
+++ b/drivers/event/cnxk/cnxk_eventdev_adptr.c
@@ -285,7 +285,7 @@ cnxk_sso_rx_adapter_queues_add(const struct rte_eventdev *event_dev,
/* Propagate force bp devarg */
cnxk_eth_dev->nix.force_rx_aura_bp = dev->force_ena_bp;
cnxk_sso_tstamp_cfg(eth_dev->data->port_id, eth_dev, dev);
- dev->rx_offloads |= cnxk_eth_dev->rx_offload_flags;
+ dev->rx_offloads |= (uint64_t)cnxk_eth_dev->rx_offload_flags;
return 0;
fail:
@@ -330,7 +330,7 @@ cnxk_sso_rx_adapter_start(const struct rte_eventdev *event_dev,
{
struct cnxk_eth_dev *cnxk_eth_dev = eth_dev->data->dev_private;
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
- dev->rx_offloads |= cnxk_eth_dev->rx_offload_flags;
+ dev->rx_offloads |= (uint64_t)cnxk_eth_dev->rx_offload_flags;
return 0;
}
diff --git a/drivers/event/cnxk/cnxk_tim_evdev.c b/drivers/event/cnxk/cnxk_tim_evdev.c
index 994d1d1090..8cdb8a72dd 100644
--- a/drivers/event/cnxk/cnxk_tim_evdev.c
+++ b/drivers/event/cnxk/cnxk_tim_evdev.c
@@ -508,7 +508,7 @@ cnxk_tim_parse_ring_ctl_list(const char *value, void *opaque)
else
continue;
- if (start && start < end) {
+ if (start && end && start < end) {
*end = 0;
cnxk_tim_parse_ring_param(start + 1, opaque);
start = end;
--
2.34.1
More information about the dev
mailing list