From: Jie Liu <[email protected]> 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: [email protected] Cc: [email protected] Signed-off-by: Jie Liu <[email protected]> --- 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

