From mboxrd@z Thu Jan 1 00:00:00 1970 From: nickcooper-zhangtonghao Subject: [PATCH 3/5] vmxnet3: Avoid segfault caused by vmxnet3_dev_rx_queue_setup. Date: Thu, 5 Jan 2017 02:43:01 -0800 Message-ID: <1483612983-3545-3-git-send-email-nic@opencloud.tech> References: <1483612983-3545-1-git-send-email-nic@opencloud.tech> Cc: nickcooper-zhangtonghao To: dev@dpdk.org Return-path: Received: from smtpproxy19.qq.com (smtpproxy19.qq.com [184.105.206.84]) by dpdk.org (Postfix) with ESMTP id D6B1E2C36 for ; Thu, 5 Jan 2017 11:43:14 +0100 (CET) In-Reply-To: <1483612983-3545-1-git-send-email-nic@opencloud.tech> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- drivers/net/vmxnet3/vmxnet3_rxtx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c index e83ac05..9822fa0 100644 --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c @@ -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) { -- 1.8.3.1