From: Damjan Marion Date: Tue, 20 Aug 2019 15:51:22 +0000 (+0200) Subject: avf: fix init when num_rx_queues > num_tx_queues X-Git-Tag: v19.08.2~370 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=6aba16230ca8065cf3fc2b608a31b349b5667be5;p=vpp.git avf: fix init when num_rx_queues > num_tx_queues Type: fix Fixes: ae91180 Change-Id: Id93b0f4d23ad7022e341e305bbd93ef2fff5787d Signed-off-by: Damjan Marion (cherry picked from commit 017002ae357a05ca1ae1b7d8fbc7bbc8063c9e34) --- diff --git a/src/plugins/avf/device.c b/src/plugins/avf/device.c index d7e91d9aa09..b11de27e651 100644 --- a/src/plugins/avf/device.c +++ b/src/plugins/avf/device.c @@ -661,11 +661,11 @@ avf_op_config_vsi_queues (vlib_main_t * vm, avf_device_t * ad) i, rxq->max_pkt_size, rxq->ring_len, rxq->databuffer_size, rxq->dma_ring_addr); - avf_txq_t *q = vec_elt_at_index (ad->txqs, i); txq->vsi_id = ad->vsi_id; + txq->queue_id = i; if (i < vec_len (ad->txqs)) { - txq->queue_id = i; + avf_txq_t *q = vec_elt_at_index (ad->txqs, i); txq->ring_len = q->size; txq->dma_ring_addr = avf_dma_addr (vm, ad, (void *) q->descs); } @@ -857,8 +857,8 @@ avf_device_init (vlib_main_t * vm, avf_main_t * am, avf_device_t * ad, avf_adminq_init (vm, ad); - /* request more queues only if we need them */ - if ((error = avf_request_queues (vm, ad, tm->n_vlib_mains))) + if ((error = avf_request_queues (vm, ad, clib_max (tm->n_vlib_mains, + args->rxq_num)))) { /* we failed to get more queues, but still we want to proceed */ clib_error_free (error);