From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 07A5C2AA0 for ; Sun, 20 May 2018 15:09:10 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id A9A19222E4; Sun, 20 May 2018 09:09:09 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Sun, 20 May 2018 09:09:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=6/52IYYwh3J8YNCrf GsgcNsibSOfnLmt3hsz5K56v9c=; b=byBRX8SInH1FrgDX4c6dtf7KQiVqTRG9M XtqzU37cQS3Vqzje0BFZxscwz6lco/gxvrCQctoIT6yfnBzrqz159CdrMTfUTu4w ZToyN97Xc7+6lfkx8a6dknx9etr2H2sKskqOgfLQjIwWcnthYzD95z6lBY81iGEJ IAhcWnuTDZ3jJg/JKjCyiI2u8XQ6IIRHdxhScpEq3Me4g4UN9DqPNZHlUI2kFBt2 ras81s4tRS5N38pjZEmaOXSHIeuemnBRgkPDfl5II4Eu0ImZRHjxlY8y1wCUbh9F 7EQJekdiCxN2CNMidTrCF3WCNRRBBt4AjZQYvADX3GuQlMMLFDB9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=6/52IYYwh3J8YNCrfGsgcNsibSOfnLmt3hsz5K56v9c=; b=iUu3yRaL 6KIQRzvMfnLy2I+MFqI+1TDd01GU08YvpFZ5EVPXR0SvY96uw9GXQtODzyJ8xOhI uflbhv8igX+NI+A5UiEaPlUXqXh7jItjHpM3xGLFx8r/Xn4RiOGfW/KmzPthKlnA QoBUP4K7d2X1GSfdq5uiv+vcM6pu8mXf06qyPUzRlra3fa2AOkhEcrJhghrTzDeH p6IJFTbQW+3FdzQ7qEGpCPuezT7ou21JaO49D8crAdFMcT8g+mDST9Il3QUfajRj 5+nNoA7CE8XRisiwNW9tQewJa8JU2tSN58dnMCdHOlhlK9hIRtG9HGT8QjGSkX4E e0YlMtriocsEbw== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from yuanhanliu-NB0.tencent.com (unknown [223.74.148.80]) by mail.messagingengine.com (Postfix) with ESMTPA id B30D31025C; Sun, 20 May 2018 09:09:06 -0400 (EDT) From: Yuanhan Liu To: Xiaoxin Peng Cc: Jay Ding , Scott Branden , Ray Jui , Randy Schacher , Ajit Khaparde , dpdk stable Date: Sun, 20 May 2018 21:02:35 +0800 Message-Id: <20180520130246.16287-19-yliu@fridaylinux.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180520130246.16287-1-yliu@fridaylinux.org> References: <20180520130246.16287-1-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/bnxt: fix Rx mbuf and agg ring leak in dev stop' has been queued to LTS release 17.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 May 2018 13:09:10 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/27/18. So please shout if anyone has objections. Thanks. --yliu --- >>From 9607f65550b1310b2d162435f82466fab2a9226b Mon Sep 17 00:00:00 2001 From: Xiaoxin Peng Date: Mon, 30 Apr 2018 18:06:14 -0700 Subject: [PATCH] net/bnxt: fix Rx mbuf and agg ring leak in dev stop [ upstream commit 3f07f2da6ca91febb67816ce8818cbdec4976413 ] In the start/stop_op operation, mbufs allocated for rings were not freed 1) add bnxt_free_tx_mbuf/bnxt_free_rx_mbuf in bnxt_dev_stop_op to free MBUF before freeing the rings. 2) MBUF allocation and free routines were not in sync. Allocation uses the ring->ring_size including any rounded up and multiple factors while the free routine uses the requested queue size. Fixes: c09f57b49c13 ("net/bnxt: add start/stop/link update operations") Signed-off-by: Jay Ding Signed-off-by: Scott Branden Reviewed-by: Ray Jui Reviewed-by: Randy Schacher Signed-off-by: Xiaoxin Peng Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ethdev.c | 4 ++-- drivers/net/bnxt/bnxt_rxq.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index b011f437f..52c511ee0 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -628,6 +628,8 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev) } bnxt_set_hwrm_link_config(bp, false); bnxt_hwrm_port_clr_stats(bp); + bnxt_free_tx_mbufs(bp); + bnxt_free_rx_mbufs(bp); bnxt_shutdown_nic(bp); bp->dev_stopped = 1; } @@ -639,8 +641,6 @@ static void bnxt_dev_close_op(struct rte_eth_dev *eth_dev) if (bp->dev_stopped == 0) bnxt_dev_stop_op(eth_dev); - bnxt_free_tx_mbufs(bp); - bnxt_free_rx_mbufs(bp); bnxt_free_mem(bp); if (eth_dev->data->mac_addrs != NULL) { rte_free(eth_dev->data->mac_addrs); diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index b4e9f38dd..5088e9dfd 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -237,7 +237,8 @@ static void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) if (rxq) { sw_ring = rxq->rx_ring->rx_buf_ring; if (sw_ring) { - for (i = 0; i < rxq->nb_rx_desc; i++) { + for (i = 0; + i < rxq->rx_ring->rx_ring_struct->ring_size; i++) { if (sw_ring[i].mbuf) { rte_pktmbuf_free_seg(sw_ring[i].mbuf); sw_ring[i].mbuf = NULL; @@ -247,7 +248,8 @@ static void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) /* Free up mbufs in Agg ring */ sw_ring = rxq->rx_ring->ag_buf_ring; if (sw_ring) { - for (i = 0; i < rxq->nb_rx_desc; i++) { + for (i = 0; + i < rxq->rx_ring->ag_ring_struct->ring_size; i++) { if (sw_ring[i].mbuf) { rte_pktmbuf_free_seg(sw_ring[i].mbuf); sw_ring[i].mbuf = NULL; -- 2.11.0