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

Reply via email to