When DCF configures rx_queues, it may cause the pointer of
rx_queues to go out of bounds.

This patch expands the scope of the judgment condition to
fix this issue.

Fixes: 4b0d391f0eab ("net/ice: add queue config in DCF")
Cc: sta...@dpdk.org

Signed-off-by: Jie Wang <jie1x.w...@intel.com>
---
v2: assign values to rxq.vsi_id and rxq.queue_id, ensure rxq.vsi_id
is equal to txq.vsi_id and rxq.queue_id is equal to txq.queue_id.
---
 drivers/net/ice/ice_dcf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index 4c2e0c7216..a68b355cb8 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -882,11 +882,11 @@ ice_dcf_configure_queues(struct ice_dcf_hw *hw)
                }
                vc_qp->rxq.vsi_id = hw->vsi_res->vsi_id;
                vc_qp->rxq.queue_id = i;
-               vc_qp->rxq.max_pkt_size = rxq[i]->max_pkt_len;
 
                if (i >= hw->eth_dev->data->nb_rx_queues)
                        continue;
 
+               vc_qp->rxq.max_pkt_size = rxq[i]->max_pkt_len;
                vc_qp->rxq.ring_len = rxq[i]->nb_rx_desc;
                vc_qp->rxq.dma_ring_addr = rxq[i]->rx_ring_dma;
                vc_qp->rxq.databuffer_size = rxq[i]->rx_buf_len;
-- 
2.25.1

Reply via email to