]> git.droids-corp.org - dpdk.git/commitdiff
net/ena: set IO ring size to valid value
authorMichal Krawczyk <mk@semihalf.com>
Wed, 8 Apr 2020 08:29:08 +0000 (10:29 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Apr 2020 11:57:07 +0000 (13:57 +0200)
IO rings were configured with the maximum allowed size for the Tx/Rx
rings. However, the application could decide to create smaller rings.

This patch is using value stored in the ring instead of the value from
the adapter which is indicating the maximum allowed value.

Fixes: df238f84c0a2 ("net/ena: recreate HW IO rings on start and stop")
Cc: stable@dpdk.org
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Guy Tzalik <gtzalik@amazon.com>
drivers/net/ena/ena_ethdev.c

index f1202d99f20a5a8b3a8f6feaa43f387cb5f73e37..62e26a2a1656cab5dfa19a26a0a6ea38877ae6c8 100644 (file)
@@ -1099,16 +1099,15 @@ static int ena_create_io_queue(struct ena_ring *ring)
                ena_qid = ENA_IO_TXQ_IDX(ring->id);
                ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX;
                ctx.mem_queue_type = ena_dev->tx_mem_queue_type;
-               ctx.queue_size = adapter->tx_ring_size;
                for (i = 0; i < ring->ring_size; i++)
                        ring->empty_tx_reqs[i] = i;
        } else {
                ena_qid = ENA_IO_RXQ_IDX(ring->id);
                ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX;
-               ctx.queue_size = adapter->rx_ring_size;
                for (i = 0; i < ring->ring_size; i++)
                        ring->empty_rx_reqs[i] = i;
        }
+       ctx.queue_size = ring->ring_size;
        ctx.qid = ena_qid;
        ctx.msix_vector = -1; /* interrupts not used */
        ctx.numa_node = ring->numa_socket_id;