From patchwork Mon Dec 4 01:57:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134771 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2378C43666; Mon, 4 Dec 2023 02:58:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B3C9F40695; Mon, 4 Dec 2023 02:57:45 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2112.outbound.protection.outlook.com [40.107.243.112]) by mails.dpdk.org (Postfix) with ESMTP id 7AD36402DE; Mon, 4 Dec 2023 02:57:43 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GQIrIoAI4+5Z1xJhOBazoFFHjktiejVd6McbSZ2/QnzKjAmFuyKj1H+Vzr0qs+M0P7QBR1kEy+AZze8WimIlDSN/tnmfrXAQEVK6oFsiZ4OMOkdZJHD8c53EXR96URnjFnhH+m29w/j1OhpO1ofhudFcFQ0G/ym7c+MKvNmcQ0qRdZZ6usCjOX+PJXOfTkHujQsPV1C68/5ZOwt2wCIp7QXGbCi63PuaSLFGL2y8gR8TTNJLncR/DasK0vI1WFpd2sWyvTjFR1Zi4+KwciUwBU7TIDVT/eOJg6f23VRAKZxiO1Bqvq+QLyGn0nblP9rgUi777UJyxHEfqPb+NADCEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=O61MIdscK4TqdWZxD9ArW/oKK0F0px831o4n5qCdK7E=; b=X5nq7qRpAn5Nc24u87BpBCs5gdS4Dp9jygn0YoXpHctucvDvCL2t6YcMTf2wUQO7KSeqHffBsl7Q166K9Dj80Edeq3XHDEH+emf55za9Ub20jG4ObvF2tZ38+AyQJu+Aa4shc29cmFunoOYfG6cLuttNa3pDYqZ1/ZWrikZCfyvX+uO1Qyc6cWmJdRqcYRLxT/IzXJMkbJNvytSGbyxXxTxG56cwqBHImYYbQAdpKsAnD5BDr5h/MVAgVAwSL2HVqvPc6PPF27TW4w/FKif71bdg5IlhD9kiK251AZqneEsYbgwGSHmdbgFyZ45CgpwAGL5H37NegKtRer6wkQZTrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O61MIdscK4TqdWZxD9ArW/oKK0F0px831o4n5qCdK7E=; b=faXoaTAbdv4eq2G9D0fIuNQlwPZRu9MZNajhAyvJ4S00MV3WCrkd2joElWKl3Mq3bLQ0hZkEWkrtSn4/t5kI0gUwy9s2yX+NoTcKvIl5Q8wMmUxelRk2kg+PRKA30TQR4fEJNaMU/hEeMDnD6tM9/llVObxuKKVgeGq6AgoK90E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by PH0PR13MB5876.namprd13.prod.outlook.com (2603:10b6:510:168::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec 2023 01:57:42 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023 01:57:41 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , james.hershaw@corigine.com, chang.miao@corigine.com, stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 2/8] net/nfp: fix resource leak for device initialization Date: Mon, 4 Dec 2023 09:57:12 +0800 Message-Id: <20231204015718.780578-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231204015718.780578-1-chaoyong.he@corigine.com> References: <20231130085238.60290-1-chaoyong.he@corigine.com> <20231204015718.780578-1-chaoyong.he@corigine.com> X-ClientProxiedBy: PH0PR07CA0021.namprd07.prod.outlook.com (2603:10b6:510:5::26) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|PH0PR13MB5876:EE_ X-MS-Office365-Filtering-Correlation-Id: 119edea2-ddcd-439e-919b-08dbf46c6682 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8GolyjtRaJ6Ghxlg1+pBg+rPF//odFyxiReDy4ppdrwlWMkEQAKSPbUMtfRXaJyUrp2QSRyH8qc0CYABfyW8Y5iZQ7lobKfLHw+xm4luwZQWy5kVou92mXsxdXOphgDNvl8GHqvTG1P3yHEh9bPUyaA3Qc2g7PG8RMNFEwP40i9VBTHx6lMP18tKrdMrwmgDh6Cr/9cwZZhlRrO4OvAWFrgCMh/sLTsA7wrE1xRXW/egO0QJtS/M6Elp1qr7cMrT2EPJgnDOXaf/8sap4+8Nvsh8402EBBYehgXi6ja1solt3v8Yb2OnZTiHYrvCxKuNMRfaJ5Dd/i2Ii92daiefpdY2XPQmiec5epm8vmeYHrdW8HxO4wRa422gP8HoLSL96PfPnFwlQ9CTuFHSdFxQk1bHiRgAEfyasu8Qe1k4V5EIg4zMrN5aJQebKGVs7HlcwRXQ+2HR4juGnpuOf6Y38mB6AN/mgt3WEk3AszLtsz25SaKACLv6pikaIlXJEnnfTJ2cjMgojkZXtvGDtNTYbUJ0M40MdOKoyX/onSoUVE46Fwty37P3stMbUYmgi64Bomg6rUdoVNhax+Q3iSaczOnll7w4qYwTAhmlbEXxLjoA2UuOXhi3qPb6xZz8lxFYAruAxqDxNohkSqz5mTHP6C+ly9Ps5ZOnLU1W5MNs8pQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(136003)(346002)(39830400003)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(83380400001)(38100700002)(41300700001)(26005)(66556008)(66476007)(6916009)(66946007)(44832011)(5660300002)(8936002)(8676002)(4326008)(450100002)(316002)(54906003)(6512007)(6506007)(107886003)(1076003)(2616005)(6486002)(6666004)(52116002)(478600001)(2906002)(86362001)(36756003)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OLcEMW3VzW5S8TIkrBNqRzgamj8DUBylv8PfUEc49VvaSRPmNaBT5eiHI+Ttb16UJ7RQOPuSzT0AaIn43EZhBUNzOzAahTwBa7MCC2jw1Gn0Se3ijdC8bbWjtSVALznDxyJu6tjUynpucrU1gSyBlCCxeHQAE4vBiNdMhF3lA4iYHb6KEiawL9MUCp6f0XOFINpuEEm+GQC8O57ucPyoeAYYho4jJuSKBPyC2qN4iU4LZ5HY2bCRSud9BtBoW4ICTCnfo3yH5TW/a0o1XrIEOhFZGdCqikkELBrPcZmifwsCv62lIAHf1e6tAZSqHtkCfDQbP9y7TR201jQuomxJ3Q1Dj0zpW17qb+dl/Im1OZ+LlSv0cSPST8wymJ2+tEWvOgZ3akYwjIndLcaeRhqdh21NPRzJ72ozPnU+o1cchVS4cA7IdWFIz8SVSEJIA6taFGQH1tLTEjZJeDtc2qoFwQKN1aKkTeIc8CxA75wNfINNKwqrvFqJPm+ARXjfNadkXpYxYtFvhpKSpYEdTEXg8jLWoqtuVzT4bTHbhw45Nj+PuYr2xgGDmd8YKyegfEwnTTGP3Qprm90Kxyol/85flFeolCnipKUxLgZKg/TPZRWD8BWCFNjFQ4P7VtPxE+ZF2qbFzTcgMDf7D29r42ojQ3uMMSMBBmhcqHJTz9O79oNgb+WhTM0YpubJ7eV2x0lxRRbYAF2O3irSpaDJ9c75x/8RzyzN8vCt18MoUAKXCStiETjehCALF55t6mnmz0YrHQYzKZeg/iQkUxujfhllL7kniM0TzyL5YeLfEIRtMHSDZyFsD9fmyIqrXCMDY5lLZ5RRDa7xmgIqxlzNhlGVdUVqWejMLAM/U6uqEjcUW2WR7eLmYm54fuwt5YAQSuxDTrRwsslbUV30mq1ppOYMPGOUm+YCEa/4SnQy6wygqOsdpO736YE8OHkQJSWSqm5iAojkgn9mZMQOqkEKirL1TERpryKuZDSj3xGWZC+wPY6GiDshknlkVwHPbvdBRrSc63VmKh4B1DqALdynDlnONUdUJEKAcVLnW4yoAlZhwZJ2hZRHYkgArCf1wqC5qWG4z9beUeerU621q3usSBMxE/XOYz+u8LNG2ZxZeSxE2paEUZatRlVMU+dNHAZPUmSKX2Qti3wP3IpcU2Ui89ob9YY6ruBSDbEFoNiXgsnxfCr5FoYLKe0hWgSjjYd0ez9AuZVknIGfAvnbKkhTZCTCWF1nQZ7qqTxngDrJxnQkUDPPI+u1sb2IAg3wQxQlreWEeaHNAfPJQx6F9pfC/J6e7zldBD2Bhh186S/Bi1efws4smU2FWqG7Axi86wbgOLJp5V7KivNtHmeTwxlPhmFJcQEgsZ6R+WBDykRSZuIVW1k4NRRGKFGoW2PdIgQqFnAux9v8ega79OLuk9pXTIh6PRyq7aKEwJwO9AkZqh1Kng0YtPCTHqD9SJxV7zH2PxO8zOax9OK9j1DZBzfNL9xBHcAOvnULPn+16yeDX480IRPCKtY9OmV7++P0TCL8tqHgQEZlFBN65Xb82qOT/EcgqzRvdpRk0CBbNMqHn1uPpIJ+asitlFm4CGMplIZ/zDha84zxwPZ4vQQKgVOE8JxygA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 119edea2-ddcd-439e-919b-08dbf46c6682 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 01:57:41.9446 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DXSbcGFN+G0PPzqQBeEhjs+/QW8355etED2+5VEkoICNrOSW5WnBDJ8JUmAg5+O0mGPO2aGkA9lsA0Lo4qBhToUJ1gSlb3bfMkIuHmmF5Og= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB5876 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Fix the resource leak problem in the abnormal logic of device initialize function. Fixes: f26e82397f6d ("net/nfp: implement xstats") Fixes: 547137405be7 ("net/nfp: initialize IPsec related content") Cc: james.hershaw@corigine.com Cc: chang.miao@corigine.com Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 9e40bce4dd..2a80a592f2 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -597,9 +597,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) net_hw->mac_stats = net_hw->mac_stats_bar; } else { - if (pf_dev->ctrl_bar == NULL) - return -ENODEV; - /* Use port offset in pf ctrl_bar for this ports control bar */ hw->ctrl_bar = pf_dev->ctrl_bar + (port * NFP_NET_CFG_BAR_SZ); net_hw->mac_stats = app_fw_nic->ports[0]->mac_stats_bar + @@ -611,18 +608,19 @@ nfp_net_init(struct rte_eth_dev *eth_dev) err = nfp_net_common_init(pci_dev, net_hw); if (err != 0) - return err; + goto free_area; err = nfp_net_tlv_caps_parse(eth_dev); if (err != 0) { PMD_INIT_LOG(ERR, "Failed to parser TLV caps"); return err; + goto free_area; } err = nfp_ipsec_init(eth_dev); if (err != 0) { PMD_INIT_LOG(ERR, "Failed to init IPsec module"); - return err; + goto free_area; } nfp_net_ethdev_ops_mount(net_hw, eth_dev); @@ -632,7 +630,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (net_hw->eth_xstats_base == NULL) { PMD_INIT_LOG(ERR, "no memory for xstats base values on device %s!", pci_dev->device.name); - return -ENOMEM; + err = -ENOMEM; + goto ipsec_exit; } /* Work out where in the BAR the queues start. */ @@ -662,7 +661,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) eth_dev->data->mac_addrs = rte_zmalloc("mac_addr", RTE_ETHER_ADDR_LEN, 0); if (eth_dev->data->mac_addrs == NULL) { PMD_INIT_LOG(ERR, "Failed to space for MAC address"); - return -ENOMEM; + err = -ENOMEM; + goto xstats_free; } nfp_net_pf_read_mac(app_fw_nic, port); @@ -700,6 +700,16 @@ nfp_net_init(struct rte_eth_dev *eth_dev) nfp_net_stats_reset(eth_dev); return 0; + +xstats_free: + rte_free(net_hw->eth_xstats_base); +ipsec_exit: + nfp_ipsec_uninit(eth_dev); +free_area: + if (net_hw->mac_stats_area != NULL) + nfp_cpp_area_release_free(net_hw->mac_stats_area); + + return err; } #define DEFAULT_FW_PATH "/lib/firmware/netronome"