Thread (11 messages) 11 messages, 4 authors, 2021-10-21

Re: [dpdk-dev] [PATCH v2] net/virtio: fix check scatter on all Rx queues

From: Peng, ZhihongX <hidden>
Date: 2021-10-11 02:22:34

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Peng, ZhihongX <redacted>
Sent: Friday, October 8, 2021 1:50 PM
To: Xia, Chenbo <redacted>; maxime.coquelin@redhat.com
Cc: dev@dpdk.org; ivan.ilchenko@oktetlabs.ru; Peng, ZhihongX
[off-list ref]; stable@dpdk.org
Subject: [PATCH v2] net/virtio: fix check scatter on all Rx queues

From: Zhihong Peng <redacted>

This patch fixes the wrong way to obtain virtqueue.
The end of virtqueue cannot be judged based on whether the array is NULL.

Fixes: 4e8169eb0d2d (net/virtio: fix Rx scatter offload)
Cc: stable@dpdk.org

Signed-off-by: Zhihong Peng <redacted>
---
 drivers/net/virtio/virtio_ethdev.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net/virtio/virtio_ethdev.c
index b60eeb24ab..213110cff4 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -888,8 +888,11 @@ virtio_check_scatter_on_all_rx_queues(struct
rte_eth_dev *dev,
 	if (hw->vqs == NULL)
 		return true;

-	for (qidx = 0; (vq = hw->vqs[2 * qidx +
VTNET_SQ_RQ_QUEUE_IDX]) != NULL;
-	     qidx++) {
+	for (qidx = 0; qidx < hw->max_queue_pairs; qidx++) {
+		vq = hw->vqs[2 * qidx + VTNET_SQ_RQ_QUEUE_IDX];
+		if (vq == NULL)
+			continue;
+
 		rxvq = &vq->rxq;
 		if (rxvq->mpool == NULL)
 			continue;
--
2.25.1
Hi Maxime,
Can you give me an ack?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help