[PATCH] common/sfc_efx/base: remove VQ index check during VQ start

Srivastava, Vijay vijay.srivastava at amd.com
Fri Jul 8 11:17:34 CEST 2022


>From: Abhimanyu Saini <absaini at amd.com>
>
>The used/avail queue indexes are not bound by queue size, because the
>descriptor entry index is calculated by a simple modulo between queue index
>and queue_size
>
>So, do not check initial used and avail queue indexes against queue size
>because it is possible for these indexes to be greater than queue size in the
>following cases:
>1) The queue is created to be migrated into, or
>2) The client issues a qstop/qstart after running datapath
>
>Fixes: 4dda72dbdeab3 ("common/sfc_efx/base: add base virtio support for
>vDPA")
>Cc: stable at dpdk.org
>
>Signed-off-by: Abhimanyu Saini <absaini at amd.com>
>---
> drivers/common/sfc_efx/base/rhead_virtio.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
>diff --git a/drivers/common/sfc_efx/base/rhead_virtio.c
>b/drivers/common/sfc_efx/base/rhead_virtio.c
>index 335cb74..7f08717 100644
>--- a/drivers/common/sfc_efx/base/rhead_virtio.c
>+++ b/drivers/common/sfc_efx/base/rhead_virtio.c
>@@ -47,14 +47,6 @@
> 		goto fail2;
> 	}
>
>-	if (evvdp != NULL) {
>-		if ((evvdp->evvd_vq_cidx > evvcp->evvc_vq_size) ||
>-		    (evvdp->evvd_vq_pidx > evvcp->evvc_vq_size)) {
>-			rc = EINVAL;
>-			goto fail3;
>-		}
>-	}
>-
> 	req.emr_cmd = MC_CMD_VIRTIO_INIT_QUEUE;
> 	req.emr_in_buf = payload;
> 	req.emr_in_length = MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN; @@ -
>116,15 +108,13 @@
>
> 	if (req.emr_rc != 0) {
> 		rc = req.emr_rc;
>-		goto fail4;
>+		goto fail3;
> 	}
>
> 	evvp->evv_vi_index = vi_index;
>
> 	return (0);
>
>-fail4:
>-	EFSYS_PROBE(fail4);
> fail3:
> 	EFSYS_PROBE(fail3);
> fail2:
>--
>1.8.3.1

Acked-by: Vijay Srivastava <vijays at amd.com>


More information about the stable mailing list