From 646d3f20aa5140ae6152e3b30e59fae9dde3d6a8 Mon Sep 17 00:00:00 2001 From: David Marchand Date: Wed, 20 Mar 2019 12:47:21 +0100 Subject: [PATCH] net/bonding: fix packet count type for LACP Caught by code review, those variables are supposed to be on 16bits to avoid endless loops in the (unlikely?) case where the application asks for receiving more than 256 packets and the accumulated num_rx_total count reaches 256: uint16_t num_rx_total = 0; uint8_t j, k; j = num_rx_total; num_rx_total += rte_eth_rx_burst(); for (k = j; k < 2 && k < num_rx_total; k++) rte_prefetch0(rte_pktmbuf_mtod(bufs[k], void *)); while (j < num_rx_total) { j++; } Fixes: 46fb43683679 ("bond: add mode 4") Cc: stable@dpdk.org Signed-off-by: David Marchand Reviewed-by: Ferruh Yigit --- drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index bbe2568cda..ae66a70f44 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -405,8 +405,9 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs, uint8_t collecting; /* current slave collecting status */ const uint8_t promisc = internals->promiscuous_en; uint8_t subtype; - uint8_t j, k; uint16_t i; + uint16_t j; + uint16_t k; /* Copy slave list to protect against slave up/down changes during tx * bursting */ -- 2.20.1