From patchwork Thu Nov 30 08:52:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134725 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 786D04340A; Thu, 30 Nov 2023 09:53:10 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A3DE42EA2; Thu, 30 Nov 2023 09:53:05 +0100 (CET) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2096.outbound.protection.outlook.com [40.107.100.96]) by mails.dpdk.org (Postfix) with ESMTP id 8B42442E5D; Thu, 30 Nov 2023 09:53:01 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pn2zMWVDc2TD1fgNZYYBxvzzRcBT79+GtaUSAPkwuUA4Z2LNFe9j5lYiDvc3ZfjD8Oc7wsaSGegeoeGw5WdgWiLaqe3bnAvJ4IMZ+AQ/2/uI4Y0NFcnjdNSbGKK7/z/soi1DiTaUPeOv+L40pPR2I5WvfZeZlvtMz61HNBVQJfgd9QuBa8D/z//E4h0OXt6Ch2p7llxOkFHRGcZho9c2LCVAnGj4NUInXF3ZBzhuIYHVdhIYDX54n3z9oqkbHkzol/pXtNiZLdX2uyMEP9ulgU1ulo/QiLknfcjVdX7WIo+Sp5Agy520ANB72DlHqtbC1raj5nNnhRZc/VuQsf8EJw== 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=WIpKu/fBWRCQsGISkakLeoLt1mI8X3Yt5Q4IMxlMQLU=; b=g4SXNAibaM5AQw7Qf00kpy/rOlRyccPfKFiu/csJ/kLFICnyIZXjB94Uxsgi/MVWAkH5E1MzOIMIpz6qW3LKVwWW2yA5nGF0Q+hQV2zN+bM3wYmWNA8b3SvzjJd+pSVwNOqd2fi/P4Tl0ji/TTL9/oXUp7DJ4yxGjjtm2kzui/asXJRSzDr0vO/iaabgvaIsANhttZd9uxXXQgLVNhAcOKYvJ5rOentxVMRqM64rGNJz9/igzf0Q7c4AgiGQkQ6Rd+LiGXgJ9U2PidQXnvnEAOemGBZ/3eJiX4UGFsLPAfuiiEwTeD1UjGBRzp/NbiM3/seiYLGJ9SS/7YKFChwb8g== 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=WIpKu/fBWRCQsGISkakLeoLt1mI8X3Yt5Q4IMxlMQLU=; b=PzCHlcc1HlTlYoms47s3YLUlydVSCrtVoyXj7KqoP6si2w7+cvo846lAQlXkuzd9pyy52gTsxYNUlBlTXe9ZTqPRxynai6JkHcR0t/3cBd19nCVDk/QBBVQ9OUPrDWL4971rUccb7YVpLtSFYZ+0Z0d4hRiW3CLuXfkTbBEDTgM= 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 SJ0PR13MB5381.namprd13.prod.outlook.com (2603:10b6:a03:3d2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.25; Thu, 30 Nov 2023 08:53:00 +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.023; Thu, 30 Nov 2023 08:53:00 +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 1/7] net/nfp: fix resource leak for device initialization Date: Thu, 30 Nov 2023 16:52:32 +0800 Message-Id: <20231130085238.60290-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231130085238.60290-1-chaoyong.he@corigine.com> References: <20231130085238.60290-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR08CA0056.namprd08.prod.outlook.com (2603:10b6:a03:117::33) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SJ0PR13MB5381:EE_ X-MS-Office365-Filtering-Correlation-Id: 20387ce0-76eb-47fb-5b40-08dbf181c12b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wuTnUt2Du5chWY4o3G5haupq/Gmv99y6ehJUkeZnbVimfeQK4ETfaAhQtv3m2uWZJOFDlhzu8AIpvJkBQCgreMFh/LyyKUBOtoCJeJdSgVDMKJT/4u8wXI4p/5labp80ZFrCtthuotcMOgf3BkKTOV1IPtUJ6H4xarTaifRaJpi0K6wPctBV/2bx1RUL6f5rTKwIme7rIy+ukPCkpQPMll3KNELILJNenEXSxXGe/04F1txyB/ntGChg7LwP85Z/80SjafOzHt/5eG+KRYXrb0mmypcejTMgpXftLGhperFwAsdppKgHgmVyom4XCrfIMMJpDcQNRImStF8Z9Ai+BWG/gu3t/me9wUSVija7EONZGapkXy7PDH9w3RR+ly7dMWZKstvsAc2/IiXEcBlMFNXJchQKY2tFUIvEAb1lo2m0AOMHwljsBkB7D6+PJ2W9Eo0/qdpPYTP4USl7pJvXg4Kmb+m2G9pVYKSc7lslLSBWudf3gAJmPQGvvFqHaUsZNui+iu//zABGJ+Qi6c7pQTtKSSml/vg7kAqQr4B62yL9N/lJIAvaAuVquUdzf0RovfqqSJT4/PXM6iRczjZwSDoCMfd+d01dIF+YLIfngtvZlM0RxMDeqAH/NTO7balmSR3+WYeaOK5o63wob2BO/LlVDTWMh/O7OLgix/UzBG6OVz6Pd9bfWHRt50PgsE0k4kItf/KEM9shhDDWr5APEw== 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)(39840400004)(376002)(366004)(136003)(396003)(346002)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(5660300002)(38100700002)(2906002)(36756003)(38350700005)(41300700001)(202311291699003)(86362001)(66476007)(107886003)(316002)(478600001)(54906003)(66556008)(6666004)(83380400001)(6916009)(52116002)(6486002)(6512007)(66946007)(1076003)(26005)(44832011)(2616005)(450100002)(8936002)(8676002)(4326008)(6506007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: m4TohH1DQfcJB2Op6RMpS/PMmTT9c09yGBfQS/0kYt5iXq5Al0hDcUiMd6WlubXrZOrX/nVnt8OnJ3FPgoX9ri59ofJ1NJ1HyFKOmTSkVzNAUZhDUND6fUtN/VTM7KkcTQtKRaCNiOKB2nbB0UgAIJv6ysNQEYNP19+LmojF6o7RdPCdTF3LIeulROySYqgejsgA9xfaIbwK5Xgw19dVKmuCuoz8RD+gAbrQamoXclYCIVVzikj2rTEM9a+sO9rYix2SEIp+iOBTD+KIo/nYj5JdP61kBRGZEpJhxnUJwcOVM9H+/7PYb8gvVnAxkhn9gk0s2hKlZb7XsP/pDTDPcVZAhdM9IKzZln1jsc9c44RWoj52CPb1/RtTFF0CMnHtacGC1D3AOEUcEMdYmBseWWq/X1CYRgQicS7Y9Sxy0KIYp8P/ukufdmuJadgTnJ8683b0fbWVdbIV4xw+0ucQ8NWvMsJKKtcyEhuj31ecD6DTV1dCS6U7pZriy2iZw+mkytFFofHObZFfemf0DYBvJxy5lfQPTthvABK95gczk3/+OxcEhyRBKczTyfsL+LkPyvnE6ID/jVsZCyndGIqdVi5/wwuJIHQ1uI3p1sZ0EIyRDUJrAy6YGCISglcweCJXNtBWF1RfMr1fUAYcGw2aJDCD6nX6Tlw659LDyg+mS6duEG+a3afnahVHj8+T9tQ96snkb8EWl3p/9aysSm5+SHpmYiW2JVgbumU1nfcN/O9TTsa9VswPowcZYpocIvVAKuKTeNMaypyRxzk7SRxBLgcHTXZBhI+7h21OPzDK1Llj0vKbJdnI0c7YqPEg23/Cg4atp0YYEjqPS/2ko0/cefDIJZsz2cljMiGevrLdRe+KGfT2OdwBIMp+KM5J8nBKeDCOC0ThhusxbwHxf9HGOn5kRtwLPyFMzfG6hmPKOB0urho6h78kiSPjKHHTbBB0pU4uDkFoybaP6tVVCmRsm+qcrxmzmePKfFzaJ+w2uEc1BJ+gmGrC8NSEisQh/+5z2c75MIqsu6BJf892uNVrIOAlPBBhwAew5vZVuidvAZAcjf0Jg3aIosS8yE7ENU2bvaR7KBJtqorgaN5lcAb1HV1gFzm1iVF8J0kYajgLHd50HJ2qlC3JEyot+05XScdKV4JQw/RoqPTDb8dLcuq1houNcxpmsaFfr7yLSFqf6M/lmeMQiinim4OAXjPu1RxEB9BKJWPskhHrkWJtMiiwe1B1strbuyOhROyN6zlR4mMFAgwtEh8dRNQX8+PWEVC68AjVsMyLWpu7zW7n0uNVfvNsNb1DFlbKCV32X2Ut0pX+sb0ZIRfeBC20vc3gKDVUINb3m9HY1W5+B8a/VIq51YCHBcB4cqN5qebTgXxfwMRrPZPgKQdBIZ3CUHFOXl1TQKhhFonVw8CEG61DUrZmC0Xw5/QXadsGeo/m6W6sHQfuJYCTDpNqRd8sPtW9NB52Bsqdjcw7S+kLWmbuJ29Docufdox6NqLVAbZI7oETgtlI4XMqZwuc+yZeI5YeUP/57nnlGsH0dUchBR79Sp5t5m910zeO5cY+bxf2DCwfOu9NPXmWplz917TMPd1WXdhn8BkhF6dodgtCwrebLh4I5Q== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20387ce0-76eb-47fb-5b40-08dbf181c12b X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2023 08:52:59.9465 (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: kZ92qKPGf+OXRJ9ZgDu6o0F0/RLWbQpmVtBX1KHjKHEpx/+K0O+6yK3gp9xzElOJovW/VbUZMIUEfJdPtdTyWaNVJZ5stz6qhc4Nf7ENszM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR13MB5381 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 f02caf8056..25feb8e394 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -590,9 +590,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 + @@ -604,18 +601,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); @@ -625,7 +623,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. */ @@ -655,7 +654,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); @@ -693,6 +693,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"