avf: fix init when num_rx_queues > num_tx_queues 17/21417/2
authorDamjan Marion <damarion@cisco.com>
Tue, 20 Aug 2019 15:51:22 +0000 (17:51 +0200)
committerDave Barach <openvpp@barachs.net>
Wed, 21 Aug 2019 14:22:40 +0000 (14:22 +0000)
Type: fix
Fixes: ae91180

Change-Id: Id93b0f4d23ad7022e341e305bbd93ef2fff5787d
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/plugins/avf/device.c

index 543a54e..5cdc8b2 100644 (file)
@@ -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);
        }
@@ -856,8 +856,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);