[dpdk-dev,3/5] vmxnet3: Avoid segfault caused by vmxnet3_dev_rx_queue_setup.
Checks
Commit Message
We should allocate RX ring for max possible mumber of hardware
descriptors. If we config RX queue with 2048 RX queue size,
and 4096 soon, there will be segment fault when calling other
ethernet API (e.g. rte_eth_dev_start).
Signed-off-by: nickcooper-zhangtonghao <nic@opencloud.tech>
---
drivers/net/vmxnet3/vmxnet3_rxtx.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
@@ -977,8 +977,11 @@
comp_ring->next2proc = 0;
comp_ring->gen = VMXNET3_INIT_GEN;
- size = sizeof(struct Vmxnet3_RxDesc) * (ring0->size + ring1->size);
- size += sizeof(struct Vmxnet3_RxCompDesc) * comp_ring->size;
+ /* Allocate RX ring for max possible mumber of hardware descriptors. */
+ size = sizeof(struct Vmxnet3_RxDesc) *
+ (VMXNET3_RX_RING_MAX_SIZE * VMXNET3_RX_CMDRING_SIZE);
+ size += sizeof(struct Vmxnet3_RxCompDesc) *
+ (VMXNET3_RX_RING_MAX_SIZE * VMXNET3_RX_CMDRING_SIZE);
mz = ring_dma_zone_reserve(dev, "rxdesc", queue_idx, size, socket_id);
if (mz == NULL) {