From: Zhihong Peng Date: Fri, 8 Oct 2021 05:49:45 +0000 (+0000) Subject: net/virtio: fix check scatter on all Rx queues X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=84cc857b5d9a344a1f04ec9f55417b58cd38e260 net/virtio: fix check scatter on all Rx queues 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 Reviewed-by: Maxime Coquelin --- diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 047d3f43a3..ddf0e26ab4 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -882,8 +882,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;