[dpdk-dev] [PATCH v2] net/iavf: fix endless loop

Qi Zhang qi.z.zhang at intel.com
Thu Jul 25 06:38:29 CEST 2019


Change loop index from uint16_t to uint32_t since max
index 65535 could be exceeded when ring size is 2k+.

Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")
Cc: stable at dpdk.org

Reported-by: Lei Yao <lei.yao at intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
---
v2:
- add missing fix in reset_tx_queue.

 drivers/net/iavf/iavf_rxtx.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index d8eb6d296..22d7bb612 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -144,7 +144,8 @@ check_rx_bulk_allow(struct iavf_rx_queue *rxq)
 static inline void
 reset_rx_queue(struct iavf_rx_queue *rxq)
 {
-	uint16_t len, i;
+	uint16_t len;
+	uint32_t i;
 
 	if (!rxq)
 		return;
@@ -174,7 +175,8 @@ static inline void
 reset_tx_queue(struct iavf_tx_queue *txq)
 {
 	struct iavf_tx_entry *txe;
-	uint16_t i, prev, size;
+	uint32_t i, size;
+	uint16_t prev;
 
 	if (!txq) {
 		PMD_DRV_LOG(DEBUG, "Pointer to txq is NULL");
-- 
2.13.6



More information about the dev mailing list