From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id E6A7245A68;
	Mon, 30 Sep 2024 14:18:20 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 0FFBF4025D;
	Mon, 30 Sep 2024 14:16:41 +0200 (CEST)
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11011006.outbound.protection.outlook.com [52.101.70.6])
 by mails.dpdk.org (Postfix) with ESMTP id 67EAC40A6D
 for <dev@dpdk.org>; Mon, 30 Sep 2024 14:16:32 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eE3Rsc3cL1HiCIQRwneQhQ5ZipBeo5lf9XIbcPWHFp59ARwUu2vJhq1kuk4mgLJqGLJmRzFFdRhFDoSKbaRfP+Uw4+fldOS3MRfiwJ0w4rIj5WCHN4OoLCjgY0WZj0st6xmQr4CbWwsGEJsSsNJ6zFKIb09waTheII/7QpOZ95nwyi8uDygw0C1Gfl7eQp0uwKxpzz/8aUsiZlopDHPejUxOrjM6NiiZL0vFPbvGJ0lictLfMhd3V+j2huBrh323HObSuTLjXt7HZpaOpbaSEgI9Fbn66Fa2BBeSuZqK9d+3EPJV+k71hA/XaD/wq9twqAdua1icuKVr0Xm0FnRqRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l1CFzmjrMIItR+dlW6R/k694iR+Bg9LmUVvW+HB8Aro=;
 b=cIlaQyJ+rTnE3ccscne5WO+R9MxrpvRSQofaXpeohAqSzxFhIyZAfsdtsFSRJAWBvC+G8T4yN0NItFD1bnQk9hTkQCBLPY6ZTqpPr3ZyxLF2F3eis0AM1/Do62LRrtY9yK8Fe40+4oUX45R0Tkn3PHSl0AV6t0/k87mpnVj8m9A9BGVWbBFZu6MyTg2KPf7rl7OoOaHK8pX+1lq+KmX9qCUKQTYJEiha8pR83tf+9zHDTO3meIt3cEjUBqtlYyGCZ7X4sR1IXF09ZyhlPconRrpJO5imRTcXeIDaXmV4ibL5mHYq30qpXIHWj0CYacLhaSyrf0NuJ4t+kWLZUnoapw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; 
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=l1CFzmjrMIItR+dlW6R/k694iR+Bg9LmUVvW+HB8Aro=;
 b=ISacx7WxGeP7fuocYWWeWP1cGubhRChjsmmeOxYbhgNXRKUgYotZKF0WmpsAWohLCkOxtFumyyevE017kKJJf2aoQR54CSyoAy3WTu/tt4hJVX0voKAZ8OAtwWhx/9x6IN4l4qTZpLTK3SC5obHZHTltgM9yZObnJZhJ27GH2ipOnEvf4EDCzzUQEoqEQNc2dcI443foKiNbKIqMp/uUWVj/2iKnHOBM0m3Jckki0921mC9/m6eRB9yDdq/+cy67n/ZAtAmoMZQeG5cQYU9ExIOqTwyvv7AHFh+5FSQk8d2WaEPdERZrh3SpgjKQUeb5n0JmeyU90lmy22rOoTS1UA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nxp.com;
Received: from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15)
 by GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.26; Mon, 30 Sep
 2024 12:16:30 +0000
Received: from PAXPR04MB9328.eurprd04.prod.outlook.com
 ([fe80::367:d59:375:fb87]) by PAXPR04MB9328.eurprd04.prod.outlook.com
 ([fe80::367:d59:375:fb87%3]) with mapi id 15.20.8005.026; Mon, 30 Sep 2024
 12:16:30 +0000
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org
Cc: ferruh.yigit@amd.com,
	Gagandeep Singh <g.singh@nxp.com>
Subject: [PATCH v4 16/18] net/dpaa: improve the dpaa port cleanup
Date: Mon, 30 Sep 2024 17:45:23 +0530
Message-Id: <20240930121525.3452847-17-hemant.agrawal@nxp.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240930121525.3452847-1-hemant.agrawal@nxp.com>
References: <20240823073240.3708320-1-hemant.agrawal@nxp.com>
 <20240930121525.3452847-1-hemant.agrawal@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: SG2PR01CA0124.apcprd01.prod.exchangelabs.com
 (2603:1096:4:40::28) To PAXPR04MB9328.eurprd04.prod.outlook.com
 (2603:10a6:102:2b6::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|GV1PR04MB10583:EE_
X-MS-Office365-Filtering-Correlation-Id: e5247900-8b4d-43dd-cd80-08dce149b71e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
 ARA:13230040|1800799024|366016|52116014|376014|38350700014; 
X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?srOs2b5LySlyjr+0Xtw2vSkR16lCSlHud4937+RX9ntXV4/PigjPGr8qB61d?=
 =?us-ascii?Q?Nu97foeMsgBE4tgU2EXrJmWC0Cp8HOsTGGOBkQ82P75g4Uv8Xu3PZNA1GK6/?=
 =?us-ascii?Q?ZfWqi8UDx9MGbW5nSKLts/s5YaoAR82Y4H1Fn4Q662uQNBP2+yVAsjU7ipAK?=
 =?us-ascii?Q?ZRTahvR3ZbHth4lp5DSSUHLOf1BNOic7z0i4U5hyvZqmvLV7O0wPlNvLBTJ5?=
 =?us-ascii?Q?/zx/DBfXxZ+WnGpoaXS4X/0fjc1bdscou61Pv13chvNrat9cpd//aWWhpjMg?=
 =?us-ascii?Q?R4yqOcgjpEBwrDqI6UrfMFausGVdAnOT8c0ImqBz/2gcfkd9bNMIj17oniYF?=
 =?us-ascii?Q?JdWx3doBpuJhzNp+Qds4inytqpoD0LRzT7i4hj3DFB0zBYLct5cPRoVU3A+P?=
 =?us-ascii?Q?JiG54h2Ma7/S2puXa1ogcUZV8R8No5p03Bo1p9Zb2iI8O0JCSSn4mSjPN4fK?=
 =?us-ascii?Q?H+oGdbhoxrGyQ0pMC5lid/OTP+9EGTu0jZgYBVjdAUxl/G1330d6mEdKbmzP?=
 =?us-ascii?Q?wVzaxcYKslctutUJJ/NAHeeLdDv1SPHZM583EWupx9NNfuvI5BSQo5zAO/em?=
 =?us-ascii?Q?Vp04XO4SSk9wTq6eLta8qFecjRAiXY7GQ7LfuD6HmvwK41SqXwA3lGWUDZuC?=
 =?us-ascii?Q?muK+aMZrkGsnWSC9WitK0zuI6P6PZWbMQXNvYAsLBHmf1/tC+DdsK7Hj3+Bq?=
 =?us-ascii?Q?KwXbllgORXHYM0M7M1ipereQJWvI0ydhnrru4qvZfQk2mnxlnvLr5GpxRnTp?=
 =?us-ascii?Q?RJoirV3FbiH/A9QVmRB2qXayiKpIQ1J3C2xJ10zcnEPx/ts9T37gl0UWwfRe?=
 =?us-ascii?Q?XOU7xQAcQ/DmrbrjaWmy0TY/mQhCRGt6aWB/cmvnLwEb6h6LZZe3lIFF2Fp7?=
 =?us-ascii?Q?5uouiWM5pXda7ehlDr/H96n5BWhfLbdG6B45GDsE27Shi1+9ST642r2eWXX1?=
 =?us-ascii?Q?3O12ux1HS4Q1z5tYOzpNyG+AQIbboLJGTysLAg+/7dfrmo0hZ1P17BshQqGE?=
 =?us-ascii?Q?DXAvT+tyUuhfNeOW1843MVgevUVdmvucHgcxP5rBDnWNgm017H7msXAIZgmV?=
 =?us-ascii?Q?3D6jOjumgt1XeJosBrQPb8Nx4ckKSz0+p0FShKjZ9ACRanpA6KQsjMPh4yVg?=
 =?us-ascii?Q?s9ORT/PIdZd2Tvo7fi63vSAK+XFXq5QaGzQwSDXUJp9AjxYfb8k6VHxGiABa?=
 =?us-ascii?Q?+6asVWjYGDGamuKUkyfi9uePz7oSUs5PgsXIVyoJF16u6+4maFceL8Pne0OM?=
 =?us-ascii?Q?SPDxqIwt5TjoEm6IIpqodUH5Oc6QKEarCibDGrxxZ1PhnYBiCQgTlt0lOS86?=
 =?us-ascii?Q?CW4iaqvRWVDZZvtpdlEpde2OvcgBynaSP78JZ5n1mmIPvg=3D=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT;
 SFP:1101; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FpUqsMDp/G5yMbnNIAqH13s0qJGIGtLCPTQXQi/FxhPJ0BabmRWJsaKTBcno?=
 =?us-ascii?Q?DpoGn7edlaLqwP9vtPQTdE9ZTVyH1cxeVr/K11aZWCAvhBX+PyxGGMjBe8LW?=
 =?us-ascii?Q?DjC5+xfFxnniI9i55oCfSo2w42ueY+wJMKd6LjSETYv/CuPpfAYmjByLjLoC?=
 =?us-ascii?Q?vZGjHZmgSdVqwVyTRcibzHKStJgYuTKGNGH8Hqbs8hRkyxyDYIQnPObkCawp?=
 =?us-ascii?Q?6NmemqZGJjlMvV2GyVBCB8Lh6lk2l1vkYu5pn3h1pupPCwwWlRK2/ortxlNy?=
 =?us-ascii?Q?7j8FFeKpdaZW967r7OyWk0liLUqmqikfV01OV4UZ1tM/W/soOdwTlmtREEtS?=
 =?us-ascii?Q?lpZJMtvb34RE9cqFjRFyYeix24O6BToOmTy/tF3KJUgYiG0SoblyZJ9bX52w?=
 =?us-ascii?Q?mFsCvhSoKZN0WYvmNfg73oxmgbcJ6om6huSw5l2jL3Go9wPgZL4s31R618QC?=
 =?us-ascii?Q?5/pcJQjkxTFrj7p1Jx8zlgOye8j50+qj9UGgfActVyKw1X0HpUZZFDegVNZx?=
 =?us-ascii?Q?c6tAwS6/wa5/vNIc77VRFO2fFgkXXQfDD05+RS4nJQ/VfE0/mSWrcN8VVvBx?=
 =?us-ascii?Q?vxv2yUd9H9AyO+XJLPHuCgwFgWfQr7qqVZzDSqXcg/qU7mdDoEIm47wLj72I?=
 =?us-ascii?Q?CW6ttswqnNEo/AtS8dhEABlS2o4Olyy9nEXFiV3QdUg3Ht+Id8vj/D6rTquL?=
 =?us-ascii?Q?TLdPOIKWUanUKPC+Pqp/+JzezF/DB33IMybjwOx7pDG2x4kt5I/nmChwWToN?=
 =?us-ascii?Q?xkti2EVqManOh3NkvnoGY1RXxEZeOXKwJzZ00RAB2tF5ww6W2xaUjO2q8TLi?=
 =?us-ascii?Q?1KN0dId2sAGp3mi+lTTx2Mx4mH9yIP9bqDctIuSdcyv/4YyJZ3lKsiNrTIzm?=
 =?us-ascii?Q?YiCYxJ/nKGSjj8vVMXn3PNv1fSuZAW6abR/InJbl2+mxbalTLPG5+CsgKtcX?=
 =?us-ascii?Q?CYNiGCUYC2zlWLZ476xX4ea1cLTWBmrtf3osLqN/FPW6ajMSPXFzDeTRGTSa?=
 =?us-ascii?Q?TqLbnJEImhrV31r5H5TIMwjGPwGoQosmDO4efgYTZT10dRa+V05Lsvti/kXM?=
 =?us-ascii?Q?0WS6dKc+cVloz4HIHTzLe3KFtb9B12UcDzB7aXgnQpsrzCXmcs0UoS5yrcfI?=
 =?us-ascii?Q?9D0IcvRLQgMZGRQoV6gJSW93aLpOp+5S+zeLAARf6h2SjMYCcF4x6/PfNlGB?=
 =?us-ascii?Q?Ci5pSENEqzAn+2oOT2NuK2tHAn2ZJZpSHeRn6h1/GH8Kki9Yp75o9s0Y1rax?=
 =?us-ascii?Q?A8J10a7kEfYiEo+EoUORUQJF47RZZxGMfMk6K/OVvdzGBZ2KG1Fod2H5xQZK?=
 =?us-ascii?Q?JjIj3RjZl0XvY1ammXBOe9rxoGO2HcH6wrI3jk5MQdA2ffc4h0fGSuD4vrzc?=
 =?us-ascii?Q?s05SPAez1rNJdqE1fv8+bc8UnvSIBs7u9PmR53hLyxNj/oUzp0DZnkWgRWn4?=
 =?us-ascii?Q?G3f2ltKDD2GZYSrRi2wVtB1nHuqM0pF8p0wZimqqcD8soUX5W6BQRdlJgfeU?=
 =?us-ascii?Q?1gzEEyCpY1SzcL4pC6Br50wy7eNzhJhbieWLNkmHEk/LjCrISBYBsi/M4Z0O?=
 =?us-ascii?Q?8z/wFXA2Wb2TlcSvM8RLMc/6/xCpM5o5FsctB9NuqLbTgIu0Ym6bq5/t9E92?=
 =?us-ascii?Q?Vg=3D=3D?=
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5247900-8b4d-43dd-cd80-08dce149b71e
X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2024 12:16:30.2356 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +YG3U7MAbvhkqqYhnm9Fg2mW70NU9YGQ2aJgYUGhwdcREJra9bBkXO/Mxr+oQ0+L7NV2sFnj48O+7g/punJ93g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

From: Gagandeep Singh <g.singh@nxp.com>

During DPAA cleanup in FMCLESS mode, application can
see segmentation fault in device close API and in DPAA
destructor execution.
Segmentation fault in device close is because driver
reducing the number of queues initialised during
device configuration without releasing the actual queues.

And segmentation fault in DPAA destruction is because
it is trying to access RTE* devices whose memory has
been released in rte_eal_cleanup() call by the application.

This patch improves the behavior.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 33 +++++++++++----------------------
 drivers/net/dpaa/dpaa_flow.c   |  5 ++---
 2 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 133fbd5bc9..41ae033c75 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -561,10 +561,10 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 	if (dpaa_intf->cgr_rx) {
 		for (loop = 0; loop < dpaa_intf->nb_rx_queues; loop++)
 			qman_delete_cgr(&dpaa_intf->cgr_rx[loop]);
+		rte_free(dpaa_intf->cgr_rx);
+		dpaa_intf->cgr_rx = NULL;
 	}
 
-	rte_free(dpaa_intf->cgr_rx);
-	dpaa_intf->cgr_rx = NULL;
 	/* Release TX congestion Groups */
 	if (dpaa_intf->cgr_tx) {
 		for (loop = 0; loop < MAX_DPAA_CORES; loop++)
@@ -578,6 +578,15 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
 	rte_free(dpaa_intf->tx_queues);
 	dpaa_intf->tx_queues = NULL;
+	if (dpaa_intf->port_handle) {
+		if (dpaa_fm_deconfig(dpaa_intf, fif))
+			DPAA_PMD_WARN("DPAA FM "
+				"deconfig failed\n");
+	}
+	if (fif->num_profiles) {
+		if (dpaa_port_vsp_cleanup(dpaa_intf, fif))
+			DPAA_PMD_WARN("DPAA FM vsp cleanup failed\n");
+	}
 
 	return ret;
 }
@@ -2607,26 +2616,6 @@ static void __attribute__((destructor(102))) dpaa_finish(void)
 		return;
 
 	if (!(default_q || fmc_q)) {
-		unsigned int i;
-
-		for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-			if (rte_eth_devices[i].dev_ops == &dpaa_devops) {
-				struct rte_eth_dev *dev = &rte_eth_devices[i];
-				struct dpaa_if *dpaa_intf =
-					dev->data->dev_private;
-				struct fman_if *fif =
-					dev->process_private;
-				if (dpaa_intf->port_handle)
-					if (dpaa_fm_deconfig(dpaa_intf, fif))
-						DPAA_PMD_WARN("DPAA FM "
-							"deconfig failed");
-				if (fif->num_profiles) {
-					if (dpaa_port_vsp_cleanup(dpaa_intf,
-								  fif))
-						DPAA_PMD_WARN("DPAA FM vsp cleanup failed");
-				}
-			}
-		}
 		if (is_global_init)
 			if (dpaa_fm_term())
 				DPAA_PMD_WARN("DPAA FM term failed");
diff --git a/drivers/net/dpaa/dpaa_flow.c b/drivers/net/dpaa/dpaa_flow.c
index 62a2884172..2a22b23c8f 100644
--- a/drivers/net/dpaa/dpaa_flow.c
+++ b/drivers/net/dpaa/dpaa_flow.c
@@ -13,6 +13,7 @@
 #include <rte_dpaa_logs.h>
 #include <fmlib/fm_port_ext.h>
 #include <fmlib/fm_vsp_ext.h>
+#include <rte_pmd_dpaa.h>
 
 #define DPAA_MAX_NUM_ETH_DEV	8
 
@@ -795,8 +796,6 @@ int dpaa_fm_config(struct rte_eth_dev *dev, uint64_t req_dist_set)
 		return -1;
 	}
 
-	dpaa_intf->nb_rx_queues = dev->data->nb_rx_queues;
-
 	/* Open FM Port and set it in port info */
 	ret = set_fm_port_handle(dpaa_intf, req_dist_set, fif);
 	if (ret) {
@@ -805,7 +804,7 @@ int dpaa_fm_config(struct rte_eth_dev *dev, uint64_t req_dist_set)
 	}
 
 	if (fif->num_profiles) {
-		for (i = 0; i < dpaa_intf->nb_rx_queues; i++)
+		for (i = 0; i < dev->data->nb_rx_queues; i++)
 			dpaa_intf->rx_queues[i].vsp_id =
 				fm_default_vsp_id(fif);
 
-- 
2.25.1