[PATCH] common/sfc_efx/base: remove VQ index check during VQ start
abhimanyu.saini at xilinx.com
abhimanyu.saini at xilinx.com
Fri Jul 8 09:37:02 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
More information about the stable
mailing list