[PATCH v3 49/51] net/sxe2: use correct loop counter type for representor LSC

liujie5 at linkdatatechnology.com liujie5 at linkdatatechnology.com
Wed Aug 26 10:58:24 CEST 2026


From: Jie Liu <liujie5 at linkdatatechnology.com>

The LSC propagation loop uses uint8_t vf_id as the loop counter while
adapter->repr_ctxt.nb_repr_vf is uint16_t. When more than 255 VFs are
present, vf_id wraps and the loop runs forever.

Use uint16_t for vf_id to match the nb_repr_vf type.

Cc: stable at dpdk.org
Cc: stephen at networkplumber.org
Signed-off-by: Jie Liu <liujie5 at linkdatatechnology.com>
---
 drivers/net/sxe2/sxe2_irq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/sxe2/sxe2_irq.c b/drivers/net/sxe2/sxe2_irq.c
index 7fe500b229..4e5339e24b 100644
--- a/drivers/net/sxe2/sxe2_irq.c
+++ b/drivers/net/sxe2/sxe2_irq.c
@@ -79,7 +79,7 @@ static void sxe2_event_irq_common_handler(struct sxe2_adapter *adapter, uint64_t
 	struct rte_eth_dev *dev = &rte_eth_devices[adapter->dev_info.dev_data->port_id];
 	struct rte_eth_dev *repr_eth_dev;
 	struct sxe2_adapter *repr_adapter;
-	uint8_t vf_id;
+	uint16_t vf_id;
 
 	if (oicr & RTE_BIT32(SXE2_COM_EC_LINK_CHG)) {
 		PMD_DEV_LOG_INFO(adapter, DRV, "OICR=0x%" PRIx64, oicr);
-- 
2.52.0



More information about the dev mailing list