From mboxrd@z Thu Jan 1 00:00:00 1970 From: nickcooper-zhangtonghao Subject: [PATCH v2 5/5] vmxnet3: Avoid segfault caused by vmxnet3_dev_tx_queue_setup. Date: Thu, 5 Jan 2017 04:01:49 -0800 Message-ID: <1483617709-7088-5-git-send-email-nic@opencloud.tech> References: <1483617709-7088-1-git-send-email-nic@opencloud.tech> Cc: nickcooper-zhangtonghao To: dev@dpdk.org Return-path: Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) by dpdk.org (Postfix) with ESMTP id B19E8F8AA for ; Thu, 5 Jan 2017 13:02:09 +0100 (CET) In-Reply-To: <1483617709-7088-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 Tx ring for max possible mumber of hardware descriptors. If we config Tx queue with 2048 Tx queue size, and 4096 soon, there will be segment fault. Signed-off-by: nickcooper-zhangtonghao --- drivers/net/vmxnet3/vmxnet3_rxtx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c index f00b3b9..5f35a2e 100644 --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c @@ -874,9 +874,10 @@ comp_ring->next2proc = 0; comp_ring->gen = VMXNET3_INIT_GEN; - size = sizeof(struct Vmxnet3_TxDesc) * ring->size; - size += sizeof(struct Vmxnet3_TxCompDesc) * comp_ring->size; - size += sizeof(struct Vmxnet3_TxDataDesc) * data_ring->size; + /* Allocate Tx ring for max possible number of hardware descriptors. */ + size = sizeof(struct Vmxnet3_TxDesc) * VMXNET3_TX_RING_MAX_SIZE; + size += sizeof(struct Vmxnet3_TxCompDesc) * VMXNET3_TX_RING_MAX_SIZE; + size += sizeof(struct Vmxnet3_TxDataDesc) * VMXNET3_TX_RING_MAX_SIZE; mz = ring_dma_zone_reserve(dev, "txdesc", queue_idx, size, socket_id); if (mz == NULL) { -- 1.8.3.1