From patchwork Mon Dec 4 01:57:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134770 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 EED5D43666; Mon, 4 Dec 2023 02:57:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 248F6402E8; Mon, 4 Dec 2023 02:57:44 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2092.outbound.protection.outlook.com [40.107.243.92]) by mails.dpdk.org (Postfix) with ESMTP id EAC744026C for ; Mon, 4 Dec 2023 02:57:41 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d4BRVBQ44eQCzc8pi7NuscSgMLJiYzYHXfEi04ZodveEqKA/PizYFXUoVDn5T90mcD8M05JyURyC2hJpG4K4IOcCxosmhc0Xl3ZdJcTmpyQ3qJKpoP3C8kqmy1Wn+3bLBOkQdwWOwzjDn1QiuNcBFIKD2Ll4o18Q7e4AD2NUU38QV84ekiIoLIn6FFe3ZvR53AbfKe2Ppa4fEI27Ls/DNo/7acJQlJL4YGgpKRFQ3DSaI2m9zKrBv2Ryam+zDgJVbhWGvTkNUU+r70KyzQ+vfisxFSY2ZsmXGzS6NAezx5Ji/bct0UtsCDkNLQw2dZh2zk7hBbR+AslUIGpxLIUKyQ== 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=MTHbZmWlgWOrIXK38OrizUK46xE+GADSMTWxZGCj6uc=; b=SK/lT39E5IIM/OSCn+6S2yZEKVydNjWeITIqqEsofK/uf0qFYirELKf8q4G2N3XZGvhkn+FBLt8dK/OESA+jfIIfEVcbciVQjE2cT1kQpjbMBny4dI2riUa/PnJVNUJ1b6RpUveZnCGOMGOw5PwF56seHbZiYOPe/WcJ2OzPvNgkCZ/v0WqdApvwb4YFlf82NNUrtTOdpahEyHEkCN0ZrZFnKWa8znmamFhyLYn0q44zo+LRP4nW4QiqhJKXv96IpBx352sm1wLdB49wns2BsSvjka1mv1JhBLmeYwnykbhp0LT+9Z+vUrVI0lTplK3hbLZ5trlf5OEtZfJXOtAw0Q== 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=MTHbZmWlgWOrIXK38OrizUK46xE+GADSMTWxZGCj6uc=; b=F1lePA2aORYhyYsmXXvnrtu9eL9JiqV/eDNJFmGaOuRJbP01iLPIn41ldUKH9mGkRG/7HS92HDSYmraVCpQj18Uh6l2LRkX+vhE/xWT6YYYDK/n+OsSCwjOMSYnXugH2VkR/R0/cn/Y6UeMrh6wqHi+2rtp/GDcOj00fA3WgT+4= 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:39 +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:39 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He Subject: [PATCH v2 1/8] net/nfp: modify the process private data Date: Mon, 4 Dec 2023 09:57:11 +0800 Message-Id: <20231204015718.780578-2-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: 6f2ef7f3-701a-406e-68eb-08dbf46c64f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lDog/Hi+P5Yh0QAUY/haqt+kJvxYlhQmzIarHaiiBjbnLkZ7gWOmr0htsg9ZIZT7u9gQ7IHdkUTlVmK3l+2P7wNZvwR2pw7xyKunSOvHWJy0HPOIg3Q5zJLvBwidyo6nIqiYcFPeXIktBnTKm48l7CG1DXHnENXiZ3fkpi9ZYc+ewkuxLAKoyf2Oy5D7OcI0Q7N5QD3/ngJ7tPAmxlpML7pmHLYNPF97MFLkSE/C0cpv8yhCWAnNhtW39lHJMRlYKDSSATmeqFYi1lxFpyaFuSn9fJGoaSqFsKb5rGljpnPJ5a9Wt20LSuIcsxEeHj5y2suRLouRquq70b8aDCgQ8aH5mcnzC3UpeoHZ6MfR9XP3jzCwnFd8CyUAs4YhE8Z+t8HR2LcfssdzqHvJoLAXKAwQZA73LR1piXFdw6ieOSb1PmO5fXB+Khd0FCSTr9ACO/1BX8LVLPhF46zXmPT5FKyLTv3sb3dnYDcuA2elz9BNCgIWfe2HKoCkLNauosZAMtpKWgvNSuQ9aPNxIdcQb8AAKCIewIjkDuqOI7uaeLV771mflfFBoUuNIu8OI8m/36oL5vyOD4VKWokqVQmQB5hvVO/BmG8V83AOySHlVLTK8VQ+Pocyls8nssesLB5sXDOZyrnQeDSv2dDpHWgCv7RUqNlqMm2UbcZRn7/Yx7g= 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)(316002)(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: o/8LN9uje6lE1l9aX9vVuhlEtxaG/D22R16Omm8v4oR3gq3MjT4Q5Eb0gJ1h6xDQjy0hcD1EBgypmi1ZH7noQUtKCegFGO1GN8CUnnylw+pQjL19x3TQGqFFap97Mw+NvDDqYAILA0iXCt0cO3J+FVAdi2q/Y1umZ5LXKPah9PRVJt/lgkTl/J+ePh2oh8jCWy5+3uwooHDUXMSgV5ugUFydsN/OZpOT3FipucEh0smrBXj75qLSl+6SbiK0AcFoCQCxLGQNe+c8QXVB5/kjVIE1OKvu4MtDcktKWb6YQx1qKzdocPhkcL/62FWW5FeJx3+SIGwzEn9yZhqW7vpmGNLP7U0QFTtSRSpVJ0c0KlC0Che+P5Fo2wjJX6SEnEmuCdX5oisCjh1FXirpWFdXYBrx8gSfHxlkGneL+Ml6XRd7eiPvx9iOchizw1XpbC2Q9iVvDG6l25pHV4UJNfEc+cQIiXIlKyKRjLfv+65xbbm4+5A9Pai8ecK4TADZSSk7yp8RQgK/RJs7LwW4amMwdA4JQjwpsKOz12D0cQknwv715IzCo3iNRKq/gGjLDoRI4M9QS5Mj3AkYqe3SXscXiiJ084G7TI2Hy5C92rS29t7dK4L2D8QPh5+XHHmoLG6zX8G378WHmtEUhrv7nVinSTDLSchanZoiaHD1nvFqiXu3Bn5nbkLT6Fwyr/2sez/0u9zGdPeJg1D2xljg8v2c2/n/toTY1XMbwhGYjz1ATCXvLZteGQHk4hwFzDeMfUp+ddjWGuQeNG23KzZ8qc/72ctvzbCMPiU8AiheimuBer3lmR6CZ4WGkCUVGx1rXddH+TEacG0DOPxZKQ203LBRXy7ezlPImdluPub+MplxXkmvfec8PWc+UoiBvwEAIi7GHxs0X0GvKIJYcZLd/3gO1Wj2II285nixoHj29k5/kBg0RmK9FGjM65Dmmc+ltyfYNP0/dVquCX0L+xqX91S97VK6JsiA1wb5DxxuHIMlkJW/AVk7Rm8jVRuPSlChdV6DECJJ9dxPjmf2PSmogcXFCijLjzuCLkCx1BH+81z2WyJz+mlWiChJ1EqV0T+Dl3Bu8a9qKq9AGUZxDpB1hMT7WbrkIOsrBW2NnsrtVY/xNw44Yb4urTYAMq7pj9lXm+ylsJV9zjOU7tU77VVw04WKmEXUlpj5c97Tz5hFEt6E2+iXasuFjW3wwVbe5Gq2GHCy/xnhZ44CvT0iw9Af2ouG+UGCz7xcNmpE32H79JToBeJgM/igjaawWNpGrpxxiCxRsM7zlK061EYs8IDORNcjXtHd5myeXI4FsdSiuxkuZX0v5wDKih/JdyjQRbYYSMuG3VxetSevw2zt1SCYnpt2trtcqVQ/+GH8EDpRN33JYG7wHNDQB+XbcWs30tftbElFRehWShrtCRnf/HV6svU4YawvO4G/Dueb8+QEN0faW5MNOt/4+p/Bbd5+k5ENqsq1phnLtyYQ+7t8b1pRZm67DCSy6q+9V4KZh2Tj7gw4b0AXxc0XMz9S++D6exaWdH231pJ5nC41hIB/7wQwBt31HHdMCIPsDj46Jp6ZNbOnGrNKyG46K52ExgnzOrPM+LBbnG+QtZwli31hGAgyMMKYzg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f2ef7f3-701a-406e-68eb-08dbf46c64f4 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:39.3321 (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: I2c5coD+WraEy2VF3Vw6pQ5hn9+kTNsrdix5X6Fgs749SuM9mBgcVjr4AK18rcvWrF7GWzxZWx2FB2S2A4GrQto6H2UHkKoKkt91GFQq6uI= 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 Modify the process private data from 'struct nfp_cpp *' into 'struct nfp_pf_dev *'. Signed-off-by: Chaoyong He --- drivers/net/nfp/flower/nfp_flower.c | 2 +- drivers/net/nfp/nfp_ethdev.c | 27 +++++++++++++++++---------- drivers/net/nfp/nfp_net_common.c | 8 +++++--- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c index 6b523d98b0..f172c8350d 100644 --- a/drivers/net/nfp/flower/nfp_flower.c +++ b/drivers/net/nfp/flower/nfp_flower.c @@ -872,7 +872,7 @@ nfp_secondary_init_app_fw_flower(struct nfp_pf_dev *pf_dev) return -ENODEV; } - eth_dev->process_private = pf_dev->cpp; + eth_dev->process_private = pf_dev; eth_dev->dev_ops = &nfp_flower_pf_vnic_ops; eth_dev->rx_pkt_burst = nfp_net_recv_pkts; eth_dev->tx_pkt_burst = nfp_flower_pf_xmit_pkts; diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index f02caf8056..9e40bce4dd 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -48,6 +48,7 @@ nfp_net_start(struct rte_eth_dev *dev) uint16_t i; struct nfp_hw *hw; uint32_t new_ctrl; + struct nfp_cpp *cpp; uint32_t update = 0; uint32_t cap_extend; uint32_t intr_vector; @@ -166,10 +167,12 @@ nfp_net_start(struct rte_eth_dev *dev) } if (rte_eal_process_type() == RTE_PROC_PRIMARY) - /* Configure the physical port up */ - nfp_eth_set_configured(net_hw->cpp, net_hw->nfp_idx, 1); + cpp = net_hw->cpp; else - nfp_eth_set_configured(dev->process_private, net_hw->nfp_idx, 1); + cpp = ((struct nfp_pf_dev *)(dev->process_private))->cpp; + + /* Configure the physical port up */ + nfp_eth_set_configured(cpp, net_hw->nfp_idx, 1); for (i = 0; i < dev->data->nb_rx_queues; i++) dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED; @@ -201,30 +204,34 @@ nfp_net_start(struct rte_eth_dev *dev) static int nfp_net_set_link_up(struct rte_eth_dev *dev) { + struct nfp_cpp *cpp; struct nfp_net_hw *hw; hw = dev->data->dev_private; if (rte_eal_process_type() == RTE_PROC_PRIMARY) - /* Configure the physical port down */ - return nfp_eth_set_configured(hw->cpp, hw->nfp_idx, 1); + cpp = hw->cpp; else - return nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 1); + cpp = ((struct nfp_pf_dev *)(dev->process_private))->cpp; + + return nfp_eth_set_configured(cpp, hw->nfp_idx, 1); } /* Set the link down. */ static int nfp_net_set_link_down(struct rte_eth_dev *dev) { + struct nfp_cpp *cpp; struct nfp_net_hw *hw; hw = dev->data->dev_private; if (rte_eal_process_type() == RTE_PROC_PRIMARY) - /* Configure the physical port down */ - return nfp_eth_set_configured(hw->cpp, hw->nfp_idx, 0); + cpp = hw->cpp; else - return nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 0); + cpp = ((struct nfp_pf_dev *)(dev->process_private))->cpp; + + return nfp_eth_set_configured(cpp, hw->nfp_idx, 0); } static uint8_t @@ -1361,7 +1368,7 @@ nfp_secondary_init_app_fw_nic(struct nfp_pf_dev *pf_dev) break; } - eth_dev->process_private = pf_dev->cpp; + eth_dev->process_private = pf_dev; hw = eth_dev->data->dev_private; nfp_net_ethdev_ops_mount(hw, eth_dev); diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index e969b840d6..eb480667c4 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -2115,6 +2115,7 @@ nfp_net_is_valid_nfd_version(struct nfp_net_fw_ver version) int nfp_net_stop(struct rte_eth_dev *dev) { + struct nfp_cpp *cpp; struct nfp_net_hw *hw; hw = nfp_net_get_hw(dev); @@ -2126,10 +2127,11 @@ nfp_net_stop(struct rte_eth_dev *dev) nfp_net_stop_rx_queue(dev); if (rte_eal_process_type() == RTE_PROC_PRIMARY) - /* Configure the physical port down */ - nfp_eth_set_configured(hw->cpp, hw->nfp_idx, 0); + cpp = hw->cpp; else - nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 0); + cpp = ((struct nfp_pf_dev *)(dev->process_private))->cpp; + + nfp_eth_set_configured(cpp, hw->nfp_idx, 0); return 0; } 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" From patchwork Mon Dec 4 01:57:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134772 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 9DE7143666; Mon, 4 Dec 2023 02:58:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 428A940A6B; Mon, 4 Dec 2023 02:57:47 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2135.outbound.protection.outlook.com [40.107.243.135]) by mails.dpdk.org (Postfix) with ESMTP id 8B61B4068A; Mon, 4 Dec 2023 02:57:45 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QFFk7lMKoU+XygAYlK3qUcYy/Qrn/YEXz7I15fe/jJ3sS5acwwcpu4vyQLyHkEeMJvMgwocVoJWoiH64PkKFKyLUOTkQa52fu19m2+71Tw1efN3FaHhUvyypqlUBKHUs08rhAk+D1H4out5blROAJ38CIUs28HM7n9bNeYmX6vGK3MKsjMYoXBTA1vhIzhFfFMVV2inz9EZmXvQr39AeQb6K5zYEoThOkHakWl3FRjRLPBDnokDdLurgav1RkDEjJ9CpSKboIOOuKflJPX88UWB6JDeGYpMzPd5MQ/DxVubYZx8olxrGh23Lm0a3XfLhRLblCMXMVkAqXVaglZ+MOw== 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=iPwiyhsy5rlCgcTDAKmhSqSPNCicL9v6dmaLws5Kg28=; b=WK93n1s2XGvy1tRBmZAVeR2+eP47XB9iatQrTqqaJMI5lvhtQxJmiEMkDm/urjCrBe13xnwJOD5B8kOvEW4QoKLuLZ0rieegFR22Cml0InWdIE+hZnRDgQ0KrVEDZyjfbLkdXMHOU/QOR8mohXHAgYVSKiNRZVxQxqmZKVCRPLB3iY5t7o42W+ogMPIyeVBs7SkcJl3UYbsUaWgIE/fmiN6NhHu2XT0UnP4bQc1pk8b2YzD8hrPwpuM91tDzEvN7+yjUhPamwH8TDVc8aF/zvZx53CQedjxYl0fu6DrPSTm5u8jcbycZ2ZyRJZnTZ0fsaNGuRp0Ydxl5WDQxXd+Miw== 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=iPwiyhsy5rlCgcTDAKmhSqSPNCicL9v6dmaLws5Kg28=; b=oQsgE1tCsZMU28MNnG7QcbLRzIInpRn1AzINhOy05dffHiRC7LliME3tURxgJXVNe46RyI0vZdORiOWyx0nXIfivNNvp6Wy3IpGwDObmjuxQbLIHRZpP+EfjCPhRUuhv541KHR61Dmfk2JXTntpQHyk+yCvn56Y4Kor12+V86D4= 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:44 +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:44 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 3/8] net/nfp: fix resource leak for CoreNIC firmware Date: Mon, 4 Dec 2023 09:57:13 +0800 Message-Id: <20231204015718.780578-4-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: ce675626-71ce-408a-e4fb-08dbf46c67d9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OPz0zMfXzV4yg4smsVzp1o2Ff2QBS+vV40ndAPggw7QNWj/O6KVwwSdVkHP9aPYXJEBU6GVqFiEgkpoc0WVmegpys80d8oo7n/r9v1GL0a1cxnH1eeqIZ9tmpdS6eGBrkWUcTY/6K7N817xQGldT8Vcu60PmQkVe38KDtEFzPfCadtynN1V9PSjEfR92SKITDDkrSmlk17syDKMzpvZlZAVZ8GBadDjAQKHhGxzxbW6/vFnkISPUTLS75LR5ZyHsm/bF/BzlDZntjwmjC2FDh7RTvpfaA+/n4ZFHQo+u5Q0jrhCEWUN1YQLrAZYIVnt0QPWgF7h3HeCQbkaGYBwEm4kibIgoTriJHbdfm2DC5Hbl1YdxdjLoi2DgAokCq1nBokP7wdQB2eCDyZbgXnH+ke+520bUZGYkypJsm3pVhnI9MtkaOI4WHAxIF1w9RUZyDki38VmbC5HQjzXmDdLvlsnnczKR6Pxvip29bw+Ji0rgy9AOoCJ/QrKKTSfZiZnAutjxAVAi+z3NaOk70THuXI+yLBfhBh06y/at3FdNF7BW//nBV6a9y401n9mANGgRSV2gk959WKCloAQhocwABQHzTocnlBdG5uB85AY4Dk5FxA3w7oBpznDuDy/rdebx5dEK5iVjKDO+zyIn9OdZhX9p77RircNvHm8DU3omKNw= 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: 9joF67Gfae0WOgNqrzM4SvEHOnG0gGxchfK/7SxP5DKlrq1SCTvE1mnDaEZNH36JtAP53SKdA+Hsy2UwjVWUgJzaZOgKgJtmBC9ZXaUHkot0EMoGKnTFVka/ltElsK6fPysQBNuHPqQFGgQzGrBr4/b1NAvcNtltZj10HHho8UpOtChdmrG++00all8BW4CR1ka+sjDqNER82mRbxxA1pMzip765dpbRr8f7kajzGKlWZgDM9vaYTampAVNhCjNohpbQ/rTtb9NxC36oaBa6VvPgl/QwoP2OskQye/mSerA8JaRkKI82IdLVNQA1PMzGTcsi1+iE2JARA19leqBhpH2OKve4s0dcYPTxeJNd8ogVba9prNnzXLioXqqVEnsgoFbGaeJyyEvOptLDZ/JXeXRiuP4COdF2d3YFHl6lRAwOhzIWMkwtuBV3VzioO4154eWVv+OeudUfJZoggkx5grp9VYdizoBBcm7KINzgkDt6t91MFxR9CzZmpWULUJOxAivc49ENhqXTKMqEYXCjJDxnc81N7c2GYTuWNUNLROZqup0Tz497IY2t0QgMDBT6kCKi5YtECAcq5o7Bt7APzNmZRRXJyilaKWXoq0N+AltSFhPwf+Qz05O1imaEQ+fwoAXRPyFEqCKpXjpNg7WEf5jDwd5Hu/aF2QXjhANpJQ6edqkT3RJkAi0QaD74uksgscPGwnZdhAizSES0GkeGFp9vfxdF+/3dcbS670M+Oh76d8c0gR/LPpfjVQLDcbF3xTz3p5YAohUGGPGhCt3yaBdG3XZhpJ1NcQHF603ARgRrizfzyYJX+VqnrErKGHT68wAOLTu+SlHLZoQqepvM5t9R4yOtw3ZpCNfEltzcCTJ2DpfZof3i5askqT7xJXvVuukfl7aGKW33e9hH+oJQD6sOA5zqU4fLBX12w5qkn9TJnffVxKiqI8x2p2bU76qAZnjZXcP9llHU6sSkBuhvl/tHWOPqtVQk8SninutqML7myjs5bI+Qew5pWAx2G1C68GbZK5GMc0eOemdoJjcsGOIwSRm2R4dLt4Gyp3klsGTnO+CwuUdV1jHlAwPvJ+dibFIiZDMPaHjJunqFNFGB8doQG3weBUxSyAK10raqxvXOPn7xdXx20yhp0ei+orvUVHEatGoFZ3RvxsTcPL8PsIoDZ3cXr8TPLePPEKBCCsHeGX7wPdUpW5y9b9Zofev5Gd4zQ5uqtFQJlcILXnPXg+f5PeCsDyhQbth64pxgDW7+HsU/b4Qgg71dKzBOR4Dlavf61H3ziDVvEFnWcSdxcgSD8HAMQ/ITddNOlvrjWmRsaOTk4zztY7YUE0BeklDDrh0U+FQyvgIb43XCmkHBv8Q42hOY/JHB4GvoDZCKzBCpjk7ky9hVaVqTwUAD52gPDdRpKN872sMWDcjU4bUNPLW0bO9njqAwZE3WhfnA5a8asNUlk3/kc6eCCV/wJ/vUT7tG6ebwtCLDqbNiVyhrB4jawbUkSH7KyHXtMEGdpYHbxI5rM3E7eC5NIF4rs6TicjF6d9pLsg/TBcAj0oi3qrz7cJnz/p/S+kqz0UBGjzW1uaQ3jiupuaRS6shJC6dqsjd4Q8Hb0HS5sr6cBd5IYA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce675626-71ce-408a-e4fb-08dbf46c67d9 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:44.1949 (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: rCSrByicK/b7LK8+8+ieIZLLl88jqgkRp0F8meZK+ZRj2mITKFIDRDGXVk4lhHFW5kP1C0UhlVFy0oPcJDAvMMWvbdea4LV2KQndpyZ/R5A= 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 logic of CoreNIC firmware application. Fixes: 646ea79ce481 ("net/nfp: move PF functions into its own file") Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 2a80a592f2..c132e97d1a 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -317,6 +317,18 @@ nfp_net_keepalive_stop(struct nfp_multi_pf *multi_pf) rte_eal_alarm_cancel(nfp_net_beat_timer, (void *)multi_pf); } +static void +nfp_net_uninit(struct rte_eth_dev *eth_dev) +{ + struct nfp_net_hw *net_hw; + + net_hw = eth_dev->data->dev_private; + rte_free(net_hw->eth_xstats_base); + nfp_ipsec_uninit(eth_dev); + if (net_hw->mac_stats_area != NULL) + nfp_cpp_area_release_free(net_hw->mac_stats_area); +} + /* Reset and stop device. The device can not be restarted. */ static int nfp_net_close(struct rte_eth_dev *dev) @@ -1137,12 +1149,11 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, app_fw_nic->ports[id]->eth_dev != NULL) { struct rte_eth_dev *tmp_dev; tmp_dev = app_fw_nic->ports[id]->eth_dev; - nfp_ipsec_uninit(tmp_dev); + nfp_net_uninit(tmp_dev); rte_eth_dev_release_port(tmp_dev); - app_fw_nic->ports[id] = NULL; } } - nfp_cpp_area_free(pf_dev->ctrl_area); + nfp_cpp_area_release_free(pf_dev->ctrl_area); app_cleanup: rte_free(app_fw_nic); From patchwork Mon Dec 4 01:57:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134773 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 7EE4743666; Mon, 4 Dec 2023 02:58:18 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 05DB540A8A; Mon, 4 Dec 2023 02:57:49 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2094.outbound.protection.outlook.com [40.107.243.94]) by mails.dpdk.org (Postfix) with ESMTP id CCAEA406B4; Mon, 4 Dec 2023 02:57:47 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X2nqrLMs6kbsnN6+nz4Q9PVUTMSuQdwmjTPej2dzGdOm0HLck3FT6yMJy2PHdle8Tppnr3T8h11RYR2kd4zh2sTtyEkNCPrTYQMw38Hu4nVJoGuG5fgIP8edk+wMJd1W5J9jzFGCSrwM4nv0HEPrKP3d92WlrVS95A3FTn/4GU21ZR5NaAkM+0Bys1CEVxP62owkNqKHRmDB0cd7GdScPSuqiPGCn/bstUT2wyMbveRCIWt/00ILZEQ+bAG2VIeX+Mq7PxzMAa0bft5Ub4a6YQoq2skjRRUKB2bZiqw8Cuvd6tYifO5UZgrLamwVJobsp5TrKZ/P2yT65OM7QVMXIg== 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=AjDcgIbGeTThFgObYgS0KljYIwgx3ifZ67ZRycLjRvU=; b=TJfrkIRgdmg/HJ91GZeKnAOPNYa+Dr41Sg3M/dCV99TjSIIpN2a52Jsdu/o6lLu9CAnXcJaamm9droACvmG8wgAxU0/fGczG0iG8Ao2ufsfRmfUugp3ALlnJGj8CjoOFgjIbnEUzuDrZfdkB9282mYJ2oV86tuo/8sG5sojUo4sMN05KXc8RZCsUgrGyGZsxDwHbsHJ34B4SKjF/L98b8XLcFz9tnmhNMeJt1IRHdBBvWUDvrGfnfEtWe7pCKNvIi2fEaDU+GRY8t7bQjnP36sIWMKaQmKdSHxELDD2h1iKtrUWtnj/ZvFKfXjK6NBR5hJ1ARTLHtGk6WcUt9WcPjg== 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=AjDcgIbGeTThFgObYgS0KljYIwgx3ifZ67ZRycLjRvU=; b=BdL4Bmld50Ol1+HtSxskRmxGq4xob4cgt5stV8imiBRPyYXCOpdz2Y32InCk9TwF8LVSmedVfcWPXPeIFDSC429yUcb32oT3NoHRWfck+zLFlroUIcnwP7rG1VABCpESmVTgt8MSP/+1mFdRppBaY08ZLJ13D+l7NtVhYGQIU1U= 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:46 +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:46 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , peng.zhang@corigine.com, stable@dpdk.org, Long Wu Subject: [PATCH v2 4/8] net/nfp: fix resource leak for PF initialization Date: Mon, 4 Dec 2023 09:57:14 +0800 Message-Id: <20231204015718.780578-5-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: 041ae083-bf5e-4d58-731e-08dbf46c692c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RCk6wnaWqckjuATYzjcrnUNOt6h0Ofqi9r4P2+Rsj3Mcq3uPJ5FtPe23mpvRAooqL1PMq53HPKYY9/3oPQnCEoYZuozVaVHg92yEKHgdZNbUn2+azxYQ1+CXBIJMNV7zsIwWr0ZLpW/U3LSWGain8vWBZ5U83Yl0RIZsLbr2oF/uDYGS5j2gZNv0vrZaykHab1dljeZPOcO8Ej8Dkdd3ViDiXeVR+mtE47ftilBchf6oo3npllHzvUO7lpjXncGeLkE5M1CDP7a/NVx5GM/cTHkauHn/Q077rX0aqCgRmViIyHCINZChX3Y3NUtTIkmgf/5qIYLceBoTdmnX/ZWjOzVuL45CtCuDF+w+DZea0rIZU9vMCncBHnzy6SRa1jtM6Y7KdH1uU6vEa3xB+KB8ZbNOTRRM0FSAyx2rovGpDSy+PNWNLVOOe8CJXXrFwAPwUy4AoHQof8+DB/rto7twbHpljNsjjv5SoAkesujstS5/SnHGW+MjFIJxKUgPIm1LQeeNYrIGnqI7d4WM0Enfpal/J9MZGVIU9Nw8kmkKm84H4a/q/C0xieqWd7VhlDfhowOZ8kDJlJFvgJgr7MMDUWwxf03b2dW6WtUfqBO03IPkuT881TtQPcrbGsaRkM8XukW/IHgKivm5VNSLAwAQSP3QJCMZ66oGmAVN0RULqwM= 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: DLNyx/q2CnwIyD3YzLZkQRh+T2FL+SSNXFyilP8FJcS7BpJEDJSlHE+JjBgFFnCVy47hTA4zpzodgB4iLoCu1O68ZonJWjBtXJ/X86s047msj9NYR+8S4ANxDQvzaD69Ps1xsFQrDDItAbXLagysRv1+48Eldeow8DfNjewPjc2vuMszKEPhJaKEZv/pZ6R7tfGkIgZHpPDAJQyMDOApln5zaSuwLWY4u/srUfWxRShW8hK1TutHuBIiq3zC1SnT5R1hMoV0gS/Hhe7VAwJW9ZzEDW7yfXvRDdt91VAwtX9r+iUaH5cO4CPeUZSjfbTtU8ySMEnYMs9akhPN1Yi6d6i2TrXcFe9XUJ+2BUbJm30RQ9Q6ROs5LolXW0OSi35pNXrv5+bX0SKbkzixa3RJ+iwS2/PvLMxu7gfelKGn7OTYtH5TRabJ+dWFGTgKssGyolRsZHJHIxc20qlUMWHM0QkpRRH5Nj6dM9KZ9xNP6F0UGhlUiEXnSFMyJVM5JcAfAnaj0bt1V+1o9+YXEuA6YBi1wAxzHOua1V0wZLQ3jVCJLIuqLqg+gBtPtEFPvfDzSB+cEGUaIsC/e2oiUJC4FWjoB0w/zoMg/YkfBi87RhW+ohJJbs8paWvbFuet1JlbXj3fM9l1AtEPZUPi8H0tRtp0Xq6o2oHH7S+/fiNrMhnoDX8BUpzWS6tpHk8Pi4NExY398zpXd1Sk4KDGqpR00VIMxcx/2uoTYaNNO/ciEsfg1t/ORlpNZ+PzWw1wdjD7tr7PZ6jt+9gQ5GvzFAknVijddLDy1DBkNCw0FUNvEREHyPw3g2Fux+J2b1NK0rVAKtHCmw+x3TC2srr0LjNSAesyXBbUVKTilBNsWUEHYODmxEuSMflLauXZGmkHsbkyZ1QvPiveyv8WDE7macKf4hGz1vxcZo8ng5lxu9JOpfQTehleJA571iEU0N/tVaZxH6rF8uxStICfm+hVPOGZdxRanQgk8mmiWwZi6LogJXAnIE7HOUbbLTMVnLEuv+6yHMazXMk0KdeaV+zGmQO5vkAK/382EHBlsjw4DDR/usoXgLicraR0I2Zg2SDOuKr6WPfct6HVkDIh70V9VJZJAxk7b17h/xsP4pTTTrQxxwV+mCAqGYoddOQUEV0u1LKVJaN0LI4owXvfJw4ifQTwzu1npoTUx6M/Fv/hQqJjZ71vtHTRaFxJDuBXjs8w7vhXnCrLK7KAJLh6UtmrkwF1YXY+FJA2g+OsGUixkUbzK1b4Itjd3o0VkPdNHMsWAaS2zkkkxQFP0QD1hxan3KLiKNRGFfrDCJ6jp2HkoVGBzMtOEvrl4aEdWGSXGI1Y+4Emav+3B9+bO+SNG1GdTzMB9sMh9JY+iLhNetayqEk7t50NBzStl++g1M4VFIjrSbQYpu0LJnlMorzWBBrlw72yZuH5AnIpeaGB0gVPy90sWEu/OJVJ6OJ8paX25na+M+1MlaifF3HGyjmkvSNxkVwfOJAv15r/ThR+Fy1k8zr6lm4ux7AggIztxMzuCu/don7AqMZMt7dyeExPrBEp0mqML/wCXbX8BkS5+Bz8PMi2zJ4peJGvnuoda4jCTD/w4d+T/TQSEPu4XAlH/YAyLRrDGQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 041ae083-bf5e-4d58-731e-08dbf46c692c 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:46.4328 (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: L82vfX00BofU6zjtOfWmdLH+gsjifdwkGrRykdFWa5umOsCxwP52jkbTNU9t5Z6RCZIo6x0HQI6eMo0gm9riV/rm20fwCRgqcRLq2C+NIf0= 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 PF initialize function. Fixes: 646ea79ce481 ("net/nfp: move PF functions into its own file") Fixes: 8ba461d1eecc ("net/nfp: introduce keepalive mechanism for multiple PF") Cc: peng.zhang@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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index c132e97d1a..6fdde105ba 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -1333,12 +1333,13 @@ nfp_pf_init(struct rte_pci_device *pci_dev) return 0; hwqueues_cleanup: - nfp_cpp_area_free(pf_dev->qc_area); + nfp_cpp_area_release_free(pf_dev->qc_area); sym_tbl_cleanup: free(sym_tbl); fw_cleanup: nfp_fw_unload(cpp); nfp_net_keepalive_stop(&pf_dev->multi_pf); + nfp_net_keepalive_uninit(&pf_dev->multi_pf); eth_table_cleanup: free(nfp_eth_table); hwinfo_cleanup: From patchwork Mon Dec 4 01:57:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134774 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 702B143666; Mon, 4 Dec 2023 02:58:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 591D240DCB; Mon, 4 Dec 2023 02:57:51 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2117.outbound.protection.outlook.com [40.107.243.117]) by mails.dpdk.org (Postfix) with ESMTP id 24CCD4069D; Mon, 4 Dec 2023 02:57:50 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oHpvpaUA5JLYeLEWSmFQDadmcDbQaboIdIeWgqjLZB9QTSWaairTX370dvajse4dYEdMXKq+dueXzrkGJPJN8hpOCynQUGaAaGZLgL5mYiIboSBKqbRFg55gHO/6fQyLGal8rn5cH/fVv4Z5IH7VLfhnBbgLk+NFlL5QR38epj7qMpzRzW4jNEZpQefYFewTgylXUBHbDrXuKFjK/RlGcGfpGVExdeIg1T30s9NVgpVl+g58Dzs6FyFK02KBruOjI+GNpr9N/ZRvY2sA1v98eYxsIBhlxa4njKQueAMxMiDyo9NHajcGABjsopXVCVHILRAwwe4d3bmCkrqU7Hv6wg== 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=NPCnv2G4jNPO6eXpGxq5Ooj4c2SQDi0IfcWisGylPuU=; b=krSCLnh/fNqPRcrat0wQUKDzcfLZ9w5JAqERxk09qvj1jfYxWKttcBBgu8/FTZA66VQTe+Z2tzQgJo3UbldOebXUkuRNQ+rgaGB6w6JjYQ6KI5HXNOaFtgkUxJsp+esASnMkQhRW01hvtf65z2oCzjh9/WwMOOVqzYCcc49JrZ2o0y7WKqQgHRoEmg5wCsjMgLNziSjStEmZLC4bQMdhUGh7j1QCJ9O4DEPxpBY6Zh8wra6U1XeD/z+PVjIIggnzjh6BD0os3ZtUPK3ojQxa/FqFS8dglXkO4vDjRbtCvydbjXahn90k6oyGY7wjmKd+U3RaiKPzYF7tBTEo4HByQA== 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=NPCnv2G4jNPO6eXpGxq5Ooj4c2SQDi0IfcWisGylPuU=; b=mnfqo6KkdP4JKy0IhpkMICKIMvbmo3qQaZfDmONQOiHVJQL/qQXFCtB+hr/kstSy6mK51/Sj+C6L7Ze9EN0ETdZyRYz/RDVHSPBab6qBoui8mzeHWTofwMQWHmNrHUYGlALbPjiRir5H3gaaaki638JE98uJWKYhQi63dycyCgQ= 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:48 +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:48 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 5/8] net/nfp: fix resource leak for flower firmware Date: Mon, 4 Dec 2023 09:57:15 +0800 Message-Id: <20231204015718.780578-6-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: 78169d53-0028-43ea-0158-08dbf46c6a7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KMD6ZdI4H21Dc2OIdkcUnr9dR++PEt9hmQLzdh33KUbSOjNpk2x8Xjmy/fAr/GP3p5cXCN24OR4S8Mt8pyV/UOzn/XhCL/rigmFH9PqIOhNBnhDe03QS0sMwjBLA3ai8YCPl3lcjJX4sJ2cf23zatyMg78WTq6fvsZXOOSBAZGt2Ocp3bxDdXjvNrNNoibi0booKy/rKU/DU0XvOA5b0KntTR8qvmqjc1Zh1GviY1Os/HHhhoCI9podtUatCCHmUF+vPxxnuFrI775rAq23DFypbR1FaW0Il5e/uSmwuPj1bcRd7ey3JCXKoC+BUtDVpGaMyrtvs+TX45JATO6EA0XUT59No/HwKKUPn3cLsTBORGYqX9eqT5G4OOe4F89KnsiteWIIJjuCeswQT7lXX1ajL5O63tvJAEPHFVqMWw+YGLSDwrKhjmy9Q9dPz5K6fLmnc8ZUJZBUPyiT9B1rHR0H5lxISl4m64fTFSi3Bd955tdjeacBoGM6Bii/ZBtAVUuke/qQXtV6dmCpnJBUCmUGPqkkMoSUsQR7c05HvUifM9Y/D+bUN7ZF74hR8BcN5/dZiGFC8uQiEJ7vaY/MNpSlaZgVlzQSuwUqLm0VTKvDqCatENSgaWaqXCmS3ARGDTCl9CnW4H+7FiNgWHrATufhLcPoCz4FVe/Y57jV8lApTnRm+bCSCMCSRkGy3JOOBmGePmp7D/hwjxoEy/QLWtg== 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)(230173577357003)(230273577357003)(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: K4mxGDC+PrbGf1Zqb3T89SV6WN4r6E6kWouqQ6zdnh/nIdPu+dg9usGqsBXIU7gJuwjGZREVXzl/cWoICPZTz2XvMVh8Xy0u4t2utBBItWVZHUxY+uWPsf7fQkwCu4XVSTq0rxCNKUEPtTZlaM7Yr5v61hcV5aBjIODNtsS+aBK2xucCFCAKK4WqPzd0dnQxzZU0p9UnEY6zLX6/UFOsMlaX5Jgu/e4LkSa/95AiKsdbXqcc7Ms4ktE34GKH0tP/YMflx31z6muj3QjHScZvKOfKUCN+ITzXK/QBd9c/QbHcqYOzOJcaDasBBX8hs+XdYzn5Wg6sS2PsGAZeWnSLcpTMbreP1FdCLzKLoHcPut7fDN5dzR3aH85HmuEhWcCiqwKa6Ft1s6A8TsMcoyHk6xK/TD8J3wDWVzVG6Aux3v58RQlNVAW/DDZ5Emg5ahdfa/pO9D7xzpeWWNl1yfUm2SccdQv6ej900bQXkCRDyNASZF0He2QfLCzf8rMPLwafLAHtT9sRQTiGnx9EqeDSl4jU+Dg46/bWJTlQElezK2XEEYjH1+REP/XSupcKF+KbSxv+jG3A0oaQNcM1bSPsfP/BUqwDjbSJZR9Nf0R6EnDHZ80MK1BCk152fK08C+mKzqpiai4giRgVR9py9Bj5MhCa8hVOBMhWF3HOEX5Dvj4ceSGYsllSbxWOtruEJxugls/wLqJC+m30+e1cmSqPgUaLQ0xbMFvjswiDTqudkOOFz6CbViIYrh3KIGu4otwNaEdfmNyhlOkzg9AEBOjE67lntN/kRC5/kjMjM3Buw4MP4FNa8KMaUpFg6C9TE63lWQC1FqpaWcCmdePPJBZEso4E2rvOXtXa6XUpl0Yl2Ve0p0oyilDNRbLLSxsEVDxxH72Pf9ZuTY5ipNF+toxp24rcL+fiyJD754h2TLXNUHB6MxOw35maBK5gJDvR31O4LBbU/YucZTQBIHADcLkWSniQytpBBmQcteDC8dCveiiyGLe0JAXIlmBUB2R/tJeuZxS8f4741vVc+kb98Ii7NhW3uq31Q1sY6Xhl4tFLoEw64ipCHOJ7qAHer1d+q66/LRDxo7PgTPaxkfQ7ry1FZGkVF6w+2N0j0WkaSJwr52KD/avAtLxf36BE5pnx3wg8S4UTe2kcjrzwXh4LrPN6em9SokLrjNNtN8Im04LB9qzwe/VlJXL0uP14C9cVRek2Byp3PCkyrRyN0XA2Av6qF/Ji4eji0Ihosu0wmeb+MnPL+HFC5Uk3b/7UWTg4EB+ZbYpCICh+HeAySQAZaqrtZcJ+EPZA8slDxCa70RnJYIgJBzWTvB0D5JbofqW0ufoJ000bTNw3ram5dlZszm2p7glME82PVZGX7ZjLrnOFK3ezYKMYggAVfUcOwaO8p0TwLX0QhqELUgRDM8TpnzGyUPZgPpQtLTJTgCy9vQQxUXLpgt5a8iLrXcNk8WTCQDkuF2cbZh4EmUOXRc2uFPpXYNAK+uxTiYBfte8nSJaf38vH4AhKTzETGQHKllJJhLbx7SkE7BSfsgzVJlDf87N0gi4PR8U6bu1/AaoR3IIOU681Fw8euocOJciwTy01JieTFWm0juPuXX9mqPdJ3sNAhA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78169d53-0028-43ea-0158-08dbf46c6a7f 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:48.6222 (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: o69ZF4WINYXNx0LH8QjztGB06es2ca058RGKNoLDxXy7IOvqwkKgaTLMjVM9SiYuJ7wY/lX05usMgXpixXY7WYQdP3dRLUesaguJV1PjXco= 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 logic of flower firmware application. Fixes: e1124c4f8a45 ("net/nfp: add flower representor framework") Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- .../net/nfp/flower/nfp_flower_representor.c | 89 ++++++++++++++++++- .../net/nfp/flower/nfp_flower_representor.h | 1 + 2 files changed, 86 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index 0f0e63aae0..7212d9e024 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -291,6 +291,43 @@ nfp_flower_repr_tx_burst(void *tx_queue, return sent; } +static int +nfp_flower_repr_uninit(struct rte_eth_dev *eth_dev) +{ + struct nfp_flower_representor *repr; + + repr = eth_dev->data->dev_private; + rte_ring_free(repr->ring); + + return 0; +} + +static int +nfp_flower_pf_repr_uninit(__rte_unused struct rte_eth_dev *eth_dev) +{ + return 0; +} + +static void +nfp_flower_repr_free(struct nfp_flower_representor *repr, + enum nfp_repr_type repr_type) +{ + switch (repr_type) { + case NFP_REPR_TYPE_PHYS_PORT: + rte_eth_dev_destroy(repr->eth_dev, nfp_flower_repr_uninit); + break; + case NFP_REPR_TYPE_PF: + rte_eth_dev_destroy(repr->eth_dev, nfp_flower_pf_repr_uninit); + break; + case NFP_REPR_TYPE_VF: + rte_eth_dev_destroy(repr->eth_dev, nfp_flower_repr_uninit); + break; + default: + PMD_DRV_LOG(ERR, "Unsupported repr port type."); + break; + } +} + static const struct eth_dev_ops nfp_flower_pf_repr_dev_ops = { .dev_infos_get = nfp_flower_repr_dev_infos_get, @@ -410,6 +447,7 @@ nfp_flower_pf_repr_init(struct rte_eth_dev *eth_dev, repr->app_fw_flower->pf_repr = repr; repr->app_fw_flower->pf_hw->eth_dev = eth_dev; + repr->eth_dev = eth_dev; return 0; } @@ -501,6 +539,8 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev, app_fw_flower->vf_reprs[index] = repr; } + repr->eth_dev = eth_dev; + return 0; mac_cleanup: @@ -511,6 +551,35 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev, return ret; } +static void +nfp_flower_repr_free_all(struct nfp_app_fw_flower *app_fw_flower) +{ + uint32_t i; + struct nfp_flower_representor *repr; + + for (i = 0; i < MAX_FLOWER_VFS; i++) { + repr = app_fw_flower->vf_reprs[i]; + if (repr != NULL) { + nfp_flower_repr_free(repr, NFP_REPR_TYPE_VF); + app_fw_flower->vf_reprs[i] = NULL; + } + } + + for (i = 0; i < NFP_MAX_PHYPORTS; i++) { + repr = app_fw_flower->phy_reprs[i]; + if (repr != NULL) { + nfp_flower_repr_free(repr, NFP_REPR_TYPE_PHYS_PORT); + app_fw_flower->phy_reprs[i] = NULL; + } + } + + repr = app_fw_flower->pf_repr; + if (repr != NULL) { + nfp_flower_repr_free(repr, NFP_REPR_TYPE_PF); + app_fw_flower->pf_repr = NULL; + } +} + static int nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower) { @@ -585,7 +654,7 @@ nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower) } if (i < app_fw_flower->num_phyport_reprs) - return ret; + goto repr_free; /* * Now allocate eth_dev's for VF representors. @@ -614,9 +683,14 @@ nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower) } if (i < app_fw_flower->num_vf_reprs) - return ret; + goto repr_free; return 0; + +repr_free: + nfp_flower_repr_free_all(app_fw_flower); + + return ret; } int @@ -635,7 +709,7 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower) /* Allocate a switch domain for the flower app */ if (app_fw_flower->switch_domain_id == RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID && - rte_eth_switch_domain_alloc(&app_fw_flower->switch_domain_id)) { + rte_eth_switch_domain_alloc(&app_fw_flower->switch_domain_id) != 0) { PMD_INIT_LOG(WARNING, "failed to allocate switch domain for device"); } @@ -677,8 +751,15 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower) ret = nfp_flower_repr_alloc(app_fw_flower); if (ret != 0) { PMD_INIT_LOG(ERR, "representors allocation failed"); - return -EINVAL; + ret = -EINVAL; + goto domain_free; } return 0; + +domain_free: + if (rte_eth_switch_domain_free(app_fw_flower->switch_domain_id) != 0) + PMD_INIT_LOG(WARNING, "failed to free switch domain for device"); + + return ret; } diff --git a/drivers/net/nfp/flower/nfp_flower_representor.h b/drivers/net/nfp/flower/nfp_flower_representor.h index bcb4c3cdb5..8053617562 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.h +++ b/drivers/net/nfp/flower/nfp_flower_representor.h @@ -20,6 +20,7 @@ struct nfp_flower_representor { struct rte_ring *ring; struct rte_eth_link link; struct rte_eth_stats repr_stats; + struct rte_eth_dev *eth_dev; }; int nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower); From patchwork Mon Dec 4 01:57:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134775 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 B564E43666; Mon, 4 Dec 2023 02:58:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 896DB40DD8; Mon, 4 Dec 2023 02:57:53 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2139.outbound.protection.outlook.com [40.107.243.139]) by mails.dpdk.org (Postfix) with ESMTP id 6E9F640DCE; Mon, 4 Dec 2023 02:57:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QDCzZq1zwRNVxx64k4L4ABFH6DciRc0gk55bgqxLIEZUb0aMxqLTt5gBYpoK0AzGxtxaPQEFsAFwR+VIRaSnNj/lFclUuIcR+xwdldWISlL0bxjCSCrJkDqNIdRL/Pz5oceQVRtxO0GRWG566dRPo+rh8WQFAWO9WPZzJm6T7W1ixMFlkt3KvrczVZF9GluOBxBLr1QVyHHoCdcTp2fQlv4iyIn/7Fr1OPLHcIrO9ZmleRy6VedSrEtbbKMe3keSbcNn4Ive1qYskg8DlUATX9/YICS8wE3b3nvAOKEHZtc/reG4liQDXn+BUWe26uIBe1JqREu0VftOg6M4nSa9UA== 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=stqftUeN7DElIrZSdRsiZK6WYBmmd+jbiXF/e61nNWk=; b=HT/yZIuc1Z9Lwq7E4Jp0K9L7lO5bvpDiDaloQh2+4NdD+zuTXBehZjJiwtRH0uNkc5mNxYYtlRASJFoTwpAI2LzMU5JN89VpwgLD9zKUerL7xt9PcotESq+S6P0aSfW5EzN+QmizfcmGdB1DAt3y+X2jRPFAugtb2UFeZbpMJnRYlU+Bcz/3U3iRSi3Pe2WDRdyhs0bASntkOiQwDgOyDXzD/wopZZ6T5MVXpcYK5casOHnTpYpjxUYzl7ggjte3cYD2+q3Gbj27TpyWZ5f0kgFyrkP5w5oEg6yX2yjG/OHdTFg81gFozHY/0PkD8UmpHd/qE0Tubu3fYApIEUpzBg== 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=stqftUeN7DElIrZSdRsiZK6WYBmmd+jbiXF/e61nNWk=; b=iWXKYkgsrbxn3qXRUU/ZCZ5qVoz4T/IyLskmgIu5uvRTDTq3jJWNphd8L/Ane7xx7f59NwvCi5LRttVYVamUpQ1DxAGxNzcgomN/XxihBIl6tVl8tP3mas6kjAnJtxUOQjtcHOWagNhQFrwVlUsn3NlWcPkFTdCY+L+4kMxfLRo= 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:50 +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:50 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 6/8] net/nfp: fix resource leak for exit of CoreNIC firmware Date: Mon, 4 Dec 2023 09:57:16 +0800 Message-Id: <20231204015718.780578-7-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: b01f2656-0a68-4bef-2d30-08dbf46c6bcf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: coueCObdg991mvPlsDHRJheYKZAU/GSLnIMJD5lzjYG5GlyjyS07RInGbx0SobpzAUkk5qEJB7rJt4RKKYRfsn/19UQZrvyD0Po2Nn/NgYDoISDCKLbvIiR/ce23nXKw4/0fmdBYjaU0ptKdtKABJzz8i32YT/uIPiUzjmE5ZgtxbJuOCvZNbTaJVFZwwDTOvKp8CgqMJyVWrVnVJD0RMar3ag5K+9rJ3OcGuWCJgR9c7pjVKQrksUohWb6d/ka4JNHhyZMNNnKVEpj1/3+DGt2kIy2CKZKLQKQgkkAWCmznlNajcPeKDxh17f1J1WTznVRChiW33NeKyfIxKy9kREyODal6SPd4/iHx0ehOYkmrxaw8XoIiQ32ou6Mxopdmr6R8Z3XKPFtdfVVNTGmKvAOyQYO1t11ZuDhKGNvvEgLSNPCSw5kgMU1kZBtnPVYhyzjEsUnht38l3lb1737MIXnRVpgeoFVzjpb2L3LEGUKMKPzEaAgJPEpqAPIsiTUcilq/cQRMk5+mk32czC/MR8GqztjecISCflbY++0xtrPhTctdwpuuWzxV26MfJL8B1O+jaFSmQoThqH10pLVdnKT7E3OHBdv2boxHyHR73+VTK+/4w1ui49sRgTiZ1bPyYOmlEZYA0anL54mMlPQN4nV+eh8uWVKL84g7bYVZPtY= 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: sF0uibdYMDYCQ4thw9Bsh9idPZvV3BqrR4ntdN5ZKB5H2RC7iPxcp8ejR+EdB8RUj3VAV8vMUENwcmsIXU4Wyf0mslHk90rvTyIJsw3cocQ1q6Ebt4Nyna64cSR0bXFgieinRW2pQUnhgO0oDYq3g+s30Y0vYi+UQi+dKrwFfyJs2MOQtfEZxdxIPdoX0fkhMB2EaCpfvJPr79ZKqiX1uBf0EFuh38RenkxI+mnoeXDJYQ1QuR0V7OkF1mGVLYMTmEW6AyzOCN+6PAvOyuZZ/DI3w3FxkhS9XI39wBDAEKDk47AbYEYpBEe4qtCM0mF7fd9u/LhS7lPJrpvFA/ucvKgXj+PqSw3VIy8OQRHJMDAmHY4JJRkrBzFlXhQ/9AvPOpZNFfMz/w2siLABjXlmJmJm+vGTUbu0P2nz3lQKxVa12UUwtZiO0RyHHccevyKYStmOHICXtTjBVYUPn7nV0g5/MX6gX5iz2s08Iiy1JIM1ZojCLFlfcNwcBX3x491j7gYC8XuiB1BHs5gQUOJl4j32DOch2gEbucyG52ANxipASDN+seWXTOAKhiBlUDi4ikhnUDkLXYzpkBeO3iCL2BMsiVcn8+nS1TVPX0kqzEef818XvatnXltczUdQMvdsD8v/+VMyMPlSLnl3RNmF6QlfKiDowVykd8goeckQ6G9oT8J5cQieRb5o6UBq0otaGbZ+N/Vi23nuM60NwqRVzgJ/BHJR+VJrkCb6rRbCyy9r/Aq2ulkuslLPXXA/OEEhciwKlrbZLBJv3HLOXxm/r/GUxPopgleujL/kUX9EGfFchBqe37W6BZQ40ta8qd9+97lZDT3iQzYBLBMfaAJxl5Y+fD6Phlug+BmLRZhWrLi8ko3Q7iCm0rYKd2kXK4nvCeplSxWWWyKuvkiGSe/fVPeb90dXl1+fy83c2CuoQXo8am5dFFwTpD3A6j7+qQpDFbm5kaz8g14FP2U/GwgN1ZCaU42Kw8YH6IyRwNSCyeh1OAS/ffMRyeN6iyNxggI8C5cBNzMCzaOB3DlQ1zpJGsjYwaPQa5FhlK5g6X8KyJkxrG2tZ95Iu4lkQphdCxMnmv3AqFadTKWaWV/nWZ/Voxyewm0dHmsytyvLdwtwqC0pqcGaNfI197PhqHkt7yHplYxBHPLlZEtGSqIYyzG3EjzV8VkmGA56df0401Ft1ZLeyP2wor5dUmcb8hAmmadbJd5XP11FBCXo6rWsbZxgT1vnn8hQ+FHN5b0SVJKIdKTb/TZOvM1XgtZNcAHEXqG3fJXXKM1NBLo01jkQwBNIwwGy3lGP/OpdYt+ZicPlzH5XQqE7Xb0vFcNYmxxxEiam9p4u4Hj07vWlMfma/KRBbWh81BDCzxlEtz5uUu9iTxtxF0rCkXrQ4mX9qahbk18u5Q3kOsDmCS2K9helXUYIz8jru0nKhGLz9qvTeIHAjOlc4BiGpZVOVPJAtVpGCaZ8X606y31xpoejHLjgczO+jccTZzeLPvlumfEfUE2e48QXzuX5OrtL+W3Iw8APv6YhEKVXe9Bw69LGhOhMvG063sbBkQq5jqJNZPQnbq2FYnODYBAmZtItKdLYnduaLgVdBRCoWBGvaQ4gI5Psa2ktQg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b01f2656-0a68-4bef-2d30-08dbf46c6bcf 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:50.8451 (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: NPkmTm55LCEHEucga4g92iqHUXcqS4Psc0g31WMBBGRIVTMUqusFGEfgzOFaG7Fwi22Nbk2uV3SWMGSl8DxipxCcIMEPNiJWJPtzMyiUaes= 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 exit logic of CoreNIC firmware. Fixes: 646ea79ce481 ("net/nfp: move PF functions into its own file") Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 91 +++++++++++++++++++++++++------- drivers/net/nfp/nfp_net_common.h | 1 + 2 files changed, 72 insertions(+), 20 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 6fdde105ba..537b4fe792 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -329,6 +329,55 @@ nfp_net_uninit(struct rte_eth_dev *eth_dev) nfp_cpp_area_release_free(net_hw->mac_stats_area); } +static void +nfp_cleanup_port_app_fw_nic(struct nfp_pf_dev *pf_dev, + uint8_t id) +{ + struct rte_eth_dev *eth_dev; + struct nfp_app_fw_nic *app_fw_nic; + + app_fw_nic = pf_dev->app_fw_priv; + if (app_fw_nic->ports[id] != NULL) { + eth_dev = app_fw_nic->ports[id]->eth_dev; + if (eth_dev != NULL) + nfp_net_uninit(eth_dev); + + app_fw_nic->ports[id] = NULL; + } +} + +static void +nfp_uninit_app_fw_nic(struct nfp_pf_dev *pf_dev) +{ + nfp_cpp_area_release_free(pf_dev->ctrl_area); + rte_free(pf_dev->app_fw_priv); +} + +void +nfp_pf_uninit(struct nfp_pf_dev *pf_dev) +{ + nfp_cpp_area_release_free(pf_dev->qc_area); + free(pf_dev->sym_tbl); + if (pf_dev->multi_pf.enabled) { + nfp_net_keepalive_stop(&pf_dev->multi_pf); + nfp_net_keepalive_uninit(&pf_dev->multi_pf); + } + free(pf_dev->nfp_eth_table); + free(pf_dev->hwinfo); + nfp_cpp_free(pf_dev->cpp); + rte_free(pf_dev); +} + +static int +nfp_pf_secondary_uninit(struct nfp_pf_dev *pf_dev) +{ + free(pf_dev->sym_tbl); + nfp_cpp_free(pf_dev->cpp); + rte_free(pf_dev); + + return 0; +} + /* Reset and stop device. The device can not be restarted. */ static int nfp_net_close(struct rte_eth_dev *dev) @@ -340,8 +389,19 @@ nfp_net_close(struct rte_eth_dev *dev) struct rte_pci_device *pci_dev; struct nfp_app_fw_nic *app_fw_nic; - if (rte_eal_process_type() != RTE_PROC_PRIMARY) + /* + * In secondary process, a released eth device can be found by its name + * in shared memory. + * If the state of the eth device is RTE_ETH_DEV_UNUSED, it means the + * eth device has been released. + */ + if (rte_eal_process_type() == RTE_PROC_SECONDARY) { + if (dev->state == RTE_ETH_DEV_UNUSED) + return 0; + + nfp_pf_secondary_uninit(dev->process_private); return 0; + } hw = dev->data->dev_private; pf_dev = hw->pf_dev; @@ -358,16 +418,17 @@ nfp_net_close(struct rte_eth_dev *dev) nfp_net_close_tx_queue(dev); nfp_net_close_rx_queue(dev); - /* Clear ipsec */ - nfp_ipsec_uninit(dev); - /* Cancel possible impending LSC work here before releasing the port */ rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev); /* Only free PF resources after all physical ports have been closed */ /* Mark this port as unused and free device priv resources */ nn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, 0xff); - app_fw_nic->ports[hw->idx] = NULL; + + if (pf_dev->app_fw_id != NFP_APP_FW_CORE_NIC) + return -EINVAL; + + nfp_cleanup_port_app_fw_nic(pf_dev, hw->idx); for (i = 0; i < app_fw_nic->total_phyports; i++) { id = nfp_function_id_get(pf_dev, i); @@ -377,26 +438,16 @@ nfp_net_close(struct rte_eth_dev *dev) return 0; } - /* Now it is safe to free all PF resources */ - PMD_INIT_LOG(INFO, "Freeing PF resources"); - if (pf_dev->multi_pf.enabled) { - nfp_net_keepalive_stop(&pf_dev->multi_pf); - nfp_net_keepalive_uninit(&pf_dev->multi_pf); - } - nfp_cpp_area_free(pf_dev->ctrl_area); - nfp_cpp_area_free(pf_dev->qc_area); - free(pf_dev->hwinfo); - free(pf_dev->sym_tbl); - nfp_cpp_free(pf_dev->cpp); - rte_free(app_fw_nic); - rte_free(pf_dev); - + /* Enable in nfp_net_start() */ rte_intr_disable(pci_dev->intr_handle); - /* Unregister callback func from eal lib */ + /* Register in nfp_net_init() */ rte_intr_callback_unregister(pci_dev->intr_handle, nfp_net_dev_interrupt_handler, (void *)dev); + nfp_uninit_app_fw_nic(pf_dev); + nfp_pf_uninit(pf_dev); + return 0; } diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index 30fea7ae02..ded491cbdc 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -272,6 +272,7 @@ int nfp_net_flow_ctrl_get(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf); int nfp_net_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf); +void nfp_pf_uninit(struct nfp_pf_dev *pf_dev); #define NFP_PRIV_TO_APP_FW_NIC(app_fw_priv)\ ((struct nfp_app_fw_nic *)app_fw_priv) From patchwork Mon Dec 4 01:57:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134776 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 E914843666; Mon, 4 Dec 2023 02:58:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7C8D440E78; Mon, 4 Dec 2023 02:57:56 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2096.outbound.protection.outlook.com [40.107.243.96]) by mails.dpdk.org (Postfix) with ESMTP id 3C95340E0F; Mon, 4 Dec 2023 02:57:55 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YsWS1T2tkSIhZDOl4hWPJu/wCFfx+1IJ2P8gXYFASpjxxLnWRZoLi4walRvTIK+TG5WKRAWGKrQo4GloMLlJLUUtTM3keAeARa7jlPp3V7vpvxjxhE8ouwPmgz5rVhIoLTIa7dK3LIaYlkVD2EL1WDwK0dSLxY8qdrcaGsy6229M63GQwaeAkr3gZEA5CU+4SbbGNFgGdA+jFhkAtkjbQjOC88bknipfk1YSmTQAoMEGBJm5YZy3Z1t9CnSSB2/0UBn+JZX6wPpnQ73iPDpSsBXB5Fd1F29HqQ9/2d1pXsfHEkxsL022xVir1SMCEZDrrTs2QigVfWuisEaQ3TmQ9w== 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=lGa+cgZr3ax8xKPH39g9JLw0wfs8OoRW/CH/ifyqZBg=; b=MQFTPSL6WEsUReWi4koSuCTN/ZljTX7/JEstzkzMSmQNUqQta7WHxTcUKw+i1Bka1s9iHpdH93oXEvt5l/aU68YEIgScwc/TdES9IJiILgOtmpDhUtyzYWlykj+SMb4h/0lEPfyomA2B5ZE3zqsIdeBRib7NN+iF8Jp/19aPSnLfrDOjM7Z056AttL4lvcONZvH6oIEW8GCuNvVyw7QBRcwe3zVWeWH58e8DSrw6Jlhn27MvOx7mOkpCeMCkYqt7L5Q3WTEcsL3M+TxL7V7VmuvyMU1gpBn7sCdEaVhbU85pkXBs7PN3GforYG6LXqN+tG7vaQly9XdwspJBR7cYwg== 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=lGa+cgZr3ax8xKPH39g9JLw0wfs8OoRW/CH/ifyqZBg=; b=TOVd7pWTXfT1jUqj8a4dIrqNgfkpcFJGhqntrSZpwEeE4cpzEg7oETaFfZflfjgGZKndHhjFWhU8LBOQ0on5+GgE8ICzXlSYN6TIre9TkQdRj8vQSfoTiW5mAYyZ2fsxeGMy6J5ABIJh/DwqGNi55c6XX8Je1ejfe1tEa9TviD0= 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:53 +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:53 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 7/8] net/nfp: fix resource leak for exit of flower firmware Date: Mon, 4 Dec 2023 09:57:17 +0800 Message-Id: <20231204015718.780578-8-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: 73b3efac-98ff-4c1b-bbab-08dbf46c6d21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1kONrajvB4y5vKjkZCAZ+c1xNpH/avLPOSEFOGvFj78Xsu1psaRNoqfnCavlvhqEoJ0W7bkg9YlM58RBhAFzW/N9qWgRFEQ8BafUMQGxwTzrTTT3ZXE8jP+gRSdEXL0BRRLep3Wqi6l4WBrZ7Foyci0aOmZZXc6/OoTE4hx3E64MplgRyvWwMuYg0hhjUu/8v1x5QbB4Ew+Am71RDQIdSNW2tpyuhJtVwCB2NEb36jdCfSD+b3jzbxDrIrG0UmBv+yv+WeNmKjhUcfkhva0tnWY4BKY5G6jNMp4o9OXLBgArWRp+tGS12lUdUxk3NL1d351JUfN+ogL+88fHAfGUosWGO5BQB+SE8qYokBVG4dlS5bd11ms/NTbDI3e+Vwk92Fef+qN9lDA31eDqwgpNY07Er3tH6jkICTgvSzgq7evrDvA1LB5ye5vRBfQ/t8B4OCfy115hhFpKQTko/sI5TkYsv+E/Ie04AnglUIRQja7mrLkTMYro+IDOATGp+NgR7S5g2t+GaKLS2BQQQW4WaP5G1dBlMcQdScSyOvIFij1R32ucPjMaZz4SkApobIAhWcLgfY7yA8USJfLibsvMb3B+NBe8nRnUP65dWY4M+pCsLtOX4GtAcKyUHTxyj2SCzQXFY0NQDRhg4JJOwmOwctwq1Z5fUt9yFcDQNFb1tW4= 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: KGjo4xUDLkwReVdbyAUv7m0yFO5gR+AM637WvYJvZnvY5DEDJaErR8JVnrDUMnJTX7kfNvZZ5YFCaQnYCQNx4sYryrG3cV8TY2tNkpbInGGQwhEfPVDf+FRfReBlhPPNMm7mt8Dd0JPXZpmdCqayPcjCl1+pXHHGwCeROA1wkOr+jLLlY+BgqrIgfPyK4NlI6CqmVtTBQDPazfTbh/DGOHWGfcnETbIwTThK23hs6wsm5dLSXU1PZqISbytxOJLZM3VHqoUqz9DO2gw4aGTlG7UW5lLske0nj4JG7YRnDU0d/dWV9wXi3bewg4wwgIMdAlWUDlKKXrNnyM/i6E//p3vg7uHlsLKth4Mba6aB5Ahta9z6PV5YvHwHYuJr8hmMxft/TQ4VvLR4CaBIL3QsgGPsuIBnqc8nbNCYbFYblDwIefU+BVlQgLV80dz92vboWgffeDw1vf7dV4uATuFnXWMSloSV9eLeNJf7A5+aDNPeuus3R3DJf/69nnWGXvIH6vv8ocSPGzLwu9j3oci+Ixpr0iC6cZ26+YYCi5AMBWxiE/VH5KOvR365lD3ViS3wF5Nf47dIrsM73r5r71oUyZX22apgzhUmUeQh+nZxUIO6dNiBxdhLSIR+EeJn39W6sZ4XxrM/aLGOHjB1F3I396HwFWO20T2EblbIPA63G3lg7q7LgLrwLdw1aOsL/S+4pKtK0TGDfkiQQSvrkRlwa+W5PqWaaY3xZDo67SJyK7au8VwzpOirZ38Y29T0VCi5lc+hv0wResmczKT5LAWa6UA19AZEhHUW8Z3MTShwdtH+t5glS62XQGk5Y4lsE4M8Uf5gj+bzrVVm8cxozPEuizn1uWD75HpzcEOx377V9fe+zUz1NUnoYFFoH3LaY5EUYfKbs3NVahGXpn02QpBbKe+OrfOm69jvS0RhHtmFc/zhAQO9gQyzTnIU4eE09au/3zswUkbT/ZBByrUphbI2k3pNSvNqqAuMVmYtfGl4gyFh5fkYg6DwtS5k18mms3VhLdbgxSuXfkEBKFInf1vHQyeHPPt1SY5+RODEznOnRC89nk8RveGp9xnJ2WUt+m7XT7zNlLoHU29anSORCa7VS3xRR6jegZ7kD1WKzCRzZR0ZL7jkoxy3OU9myJgdCBlgt84tnSAk/S8fzbKR6TKNyTiaWcAGfsHhkTtTt3S9aTzOVVH2ZAidDEPddrpxNptC69z6U8aVZ6aLcQXa2NrC4L3LBh4GU8BGx+c7h7xDpzUcBhfIsV2RemPEuo8Z6PoU8WCRUu7x/EoS6dEL+i5hsLh06DTMEoKETx0uncQ82IGUPiyo65TNZhaGeDIghARAZk8fBYRm7jwJX7V+dkV+XrG4DZFRov1tXqeYHsGqclpvNNmpWA5ww+GEX2Vx/etBXraVBOpo0C9+aVNk7iJslqXv03vs6PkGx3UG0hcmPnlL+ccW/FmKjARqVLNjWulzKYMgq6ccOvV0Kk54ekFE3u87l3R+PRKH3ls35JevEeY4M1z28/LOWLfHd/GeiasHFYSDh5A0r0tQg+KJZSYKiKuoAQMcI8pHPcruY2YAatF0Aci1oMFgeegEV2Pe0ccU4X426tghYWI3V9IAkLOXYA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73b3efac-98ff-4c1b-bbab-08dbf46c6d21 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:53.0627 (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: /OudcxkQTumX8a3qcSu9tGTIl60KROzQD/zPin+fmVU/G+EaKcZ+ocR16/yavDdSe0B1M59mdqgfI2uco4zK0WGyaQFCvj/hxIwMZRjD4fE= 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 exit logic of flower firmware. Fixes: e1124c4f8a45 ("net/nfp: add flower representor framework") Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/flower/nfp_flower.c | 73 ++++--------------- drivers/net/nfp/flower/nfp_flower.h | 1 + .../net/nfp/flower/nfp_flower_representor.c | 64 ++++++++++++++++ 3 files changed, 80 insertions(+), 58 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c index f172c8350d..f950ae233b 100644 --- a/drivers/net/nfp/flower/nfp_flower.c +++ b/drivers/net/nfp/flower/nfp_flower.c @@ -82,63 +82,6 @@ nfp_flower_pf_start(struct rte_eth_dev *dev) return 0; } -/* Reset and stop device. The device can not be restarted. */ -static int -nfp_flower_pf_close(struct rte_eth_dev *dev) -{ - uint16_t i; - struct nfp_net_hw *hw; - struct nfp_pf_dev *pf_dev; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; - struct nfp_flower_representor *repr; - struct nfp_app_fw_flower *app_fw_flower; - - if (rte_eal_process_type() != RTE_PROC_PRIMARY) - return 0; - - repr = dev->data->dev_private; - hw = repr->app_fw_flower->pf_hw; - pf_dev = hw->pf_dev; - app_fw_flower = NFP_PRIV_TO_APP_FW_FLOWER(pf_dev->app_fw_priv); - - nfp_mtr_priv_uninit(pf_dev); - - /* - * We assume that the DPDK application is stopping all the - * threads/queues before calling the device close function. - */ - nfp_net_disable_queues(dev); - - /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - } - - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - } - - /* Cancel possible impending LSC work here before releasing the port */ - rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev); - - nn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, 0xff); - - /* Now it is safe to free all PF resources */ - PMD_DRV_LOG(INFO, "Freeing PF resources"); - nfp_cpp_area_free(pf_dev->ctrl_area); - nfp_cpp_area_free(pf_dev->qc_area); - free(pf_dev->hwinfo); - free(pf_dev->sym_tbl); - nfp_cpp_free(pf_dev->cpp); - rte_free(app_fw_flower); - rte_free(pf_dev); - - return 0; -} - static const struct eth_dev_ops nfp_flower_pf_vnic_ops = { .dev_infos_get = nfp_net_infos_get, .link_update = nfp_net_link_update, @@ -146,7 +89,6 @@ static const struct eth_dev_ops nfp_flower_pf_vnic_ops = { .dev_start = nfp_flower_pf_start, .dev_stop = nfp_net_stop, - .dev_close = nfp_flower_pf_close, }; static inline struct nfp_flower_representor * @@ -858,6 +800,21 @@ nfp_init_app_fw_flower(struct nfp_pf_dev *pf_dev, return ret; } +void +nfp_uninit_app_fw_flower(struct nfp_pf_dev *pf_dev) +{ + struct nfp_app_fw_flower *app_fw_flower; + + app_fw_flower = pf_dev->app_fw_priv; + nfp_flower_cleanup_ctrl_vnic(app_fw_flower->ctrl_hw); + nfp_cpp_area_free(app_fw_flower->ctrl_hw->ctrl_area); + nfp_cpp_area_free(pf_dev->ctrl_area); + rte_free(app_fw_flower->pf_hw); + nfp_mtr_priv_uninit(pf_dev); + nfp_flow_priv_uninit(pf_dev); + rte_free(app_fw_flower); +} + int nfp_secondary_init_app_fw_flower(struct nfp_pf_dev *pf_dev) { diff --git a/drivers/net/nfp/flower/nfp_flower.h b/drivers/net/nfp/flower/nfp_flower.h index 6f27c06acc..8393de66c5 100644 --- a/drivers/net/nfp/flower/nfp_flower.h +++ b/drivers/net/nfp/flower/nfp_flower.h @@ -106,6 +106,7 @@ nfp_flower_support_decap_v2(const struct nfp_app_fw_flower *app_fw_flower) int nfp_init_app_fw_flower(struct nfp_pf_dev *pf_dev, const struct nfp_dev_info *dev_info); +void nfp_uninit_app_fw_flower(struct nfp_pf_dev *pf_dev); int nfp_secondary_init_app_fw_flower(struct nfp_pf_dev *pf_dev); bool nfp_flower_pf_dispatch_pkts(struct nfp_net_hw *hw, struct rte_mbuf *mbuf, diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index 7212d9e024..02089d390e 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -328,12 +328,75 @@ nfp_flower_repr_free(struct nfp_flower_representor *repr, } } +/* Reset and stop device. The device can not be restarted. */ +static int +nfp_flower_repr_dev_close(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_hw *hw; + struct nfp_pf_dev *pf_dev; + struct nfp_net_txq *this_tx_q; + struct nfp_net_rxq *this_rx_q; + struct nfp_flower_representor *repr; + struct nfp_app_fw_flower *app_fw_flower; + + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + + repr = dev->data->dev_private; + app_fw_flower = repr->app_fw_flower; + hw = app_fw_flower->pf_hw; + pf_dev = hw->pf_dev; + + /* + * We assume that the DPDK application is stopping all the + * threads/queues before calling the device close function. + */ + nfp_net_disable_queues(dev); + + /* Clear queues */ + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = dev->data->tx_queues[i]; + nfp_net_reset_tx_queue(this_tx_q); + } + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + this_rx_q = dev->data->rx_queues[i]; + nfp_net_reset_rx_queue(this_rx_q); + } + + if (pf_dev->app_fw_id != NFP_APP_FW_FLOWER_NIC) + return -EINVAL; + + nfp_flower_repr_free(repr, repr->repr_type); + + for (i = 0; i < MAX_FLOWER_VFS; i++) { + if (app_fw_flower->vf_reprs[i] != NULL) + return 0; + } + + for (i = 0; i < NFP_MAX_PHYPORTS; i++) { + if (app_fw_flower->phy_reprs[i] != NULL) + return 0; + } + + if (app_fw_flower->pf_repr != NULL) + return 0; + + /* Now it is safe to free all PF resources */ + nfp_uninit_app_fw_flower(pf_dev); + nfp_pf_uninit(pf_dev); + + return 0; +} + static const struct eth_dev_ops nfp_flower_pf_repr_dev_ops = { .dev_infos_get = nfp_flower_repr_dev_infos_get, .dev_start = nfp_flower_pf_start, .dev_configure = nfp_net_configure, .dev_stop = nfp_net_stop, + .dev_close = nfp_flower_repr_dev_close, .rx_queue_setup = nfp_net_rx_queue_setup, .tx_queue_setup = nfp_net_tx_queue_setup, @@ -356,6 +419,7 @@ static const struct eth_dev_ops nfp_flower_repr_dev_ops = { .dev_start = nfp_flower_repr_dev_start, .dev_configure = nfp_net_configure, .dev_stop = nfp_flower_repr_dev_stop, + .dev_close = nfp_flower_repr_dev_close, .rx_queue_setup = nfp_flower_repr_rx_queue_setup, .tx_queue_setup = nfp_flower_repr_tx_queue_setup, From patchwork Mon Dec 4 01:57:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134777 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 8FB8343666; Mon, 4 Dec 2023 02:58:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 96D7040E36; Mon, 4 Dec 2023 02:57:58 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2103.outbound.protection.outlook.com [40.107.243.103]) by mails.dpdk.org (Postfix) with ESMTP id EC56C40EA5; Mon, 4 Dec 2023 02:57:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fQr2Jomk0PYGxhu0z0nVM/GX5hUtg5s6mcKzNzXck6SNT//GzuqQG6N0SgOO1oxkRyBH+0GIWAlVZL9OC07lohRNunO2IFO/cVcZfTpA3XznP6PWQDrOOo4MPA0TF9Cefo3zEnFWsnsTt9MV21+a+NRfdnj8PneORzNRkas/ImQkXuAkQUOgFgAqgHu8lVUYzfIpZYWgAjqgX9Y4K19Ek0Mzw8++9PqWM5BJoADpS9XsgB+DFuvWC7PJJd8KNvJGD979DSUm4fdCWisoNJyiMb4L/S6CwY7nTg99Jcwk14oFmMpq9vTUgo3LifP6LTAMhTHnR066tnaiTUXk9trTUw== 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=7JVn/Hs43u5KYBBCIIihM727EuCw8Q8oIMk3RNWlHVk=; b=k49IQE1+US6ripxigXOIE3sWvlLP0hIcfea74eSLHX2lWQrR3FUBoj2k9ezY7r5bx3aw/90gda+Um8EUc/r+ax4QAxlgI8d8OGei0LuEvWhWPK8gYlTomOLmZoXm+Zd14i7WykSg4dZKBeRBrk75yiWoaXiVXvFdcbwfiW6H7x3k1Ctq1YLRuRCWTDAr7ppOVoXhcQ0g+XOHaqSAu4yUGuiLLXRz1/KUQe/Zs320XkHmrIqnAZcmW/iPZDdDCJatz/NZkOfBzo1cDDyYyfKBTuenlKXPNnp52CR+qfJZMYgxb3FNiouH1cs80URkhoC/WBco4idypTz3MhSbYL4Jmg== 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=7JVn/Hs43u5KYBBCIIihM727EuCw8Q8oIMk3RNWlHVk=; b=HqFLcASHJ9aeSunfuJoD91QcDCHyqTkvvU32dxJKZ0Y63pBzlBBf3N/zUFmtUNaE0qJrsKFknGYkrOs/M63RHzZaJu4n7YmHV52oj5oq9cUYwv3jS3M4zjMdVserD579uvEP6yXZCloPYOwCjOspFMlLctXGh5S/V7y5BrnGAWU= 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:55 +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:55 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , james.hershaw@corigine.com, stable@dpdk.org, Long Wu , Peng Zhang Subject: [PATCH v2 8/8] net/nfp: fix resource leak for VF Date: Mon, 4 Dec 2023 09:57:18 +0800 Message-Id: <20231204015718.780578-9-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: cba19c64-a574-4864-e604-08dbf46c6e90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6zcXuUcWpY4gp8eZflQlb1Wl5UfQEyUwYMVCmiZuXIbcuHZT9UzYVKGWMqfcKjdwELysLc/IQx4zhxnOrgYk/5FqmFj2+NTdxS5J7y376a4Z0bUn9u8TGKjNEVkRSbRWnkhJnA9SZqCKRFSEr0zVT3H/ALinPzutZ95xeYCS50gpBgpD3ODS5DrKe6yo2FeE2u910MObSv7QAJ+DKjMtkRFpMS6cBZ1pVLm0Q48BAKwpHmJmH5lyoXdx0SzunGdKCQwqJuOSYAW9nJsjvVNoh7ol+Tt/UWfnAfpuVaGkbsEaOPhUD18fAoBAncdhYONrH+7tCp1q5mLAbIH/ObtaOtRvEKxr/CEd9wevFYbqQ5wfJufCMW6ePRe4OIqHN8j/f8PhKHfNbftRfCu0XhjK+mgyLjx0IxMRJyl7OexW958sh2chRyxHRAKGOHhyVDtrOIDL3VKG5lKTYRdCITULBq6zxMETpMbLF4dew9tBR6lsOx6i6DWEH9yJL9H2k/o0Nb5WnH37xTZlW6yA6Z2NqMdb4FDGtod9YA/ztDmx4igVtK0Nosg9HGITcwE8q0tXoZpdyn6hEJuWQXnm3c0dxEAdZuVBsyFjXLqDYEDbqlKV5eArdzgSb81+NUwI4vaWj0FLWdNNe9rnTjq/PNiBsP4BuXZ+bHqfWBsxZ8pi8QE= 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: npAllOmhzp2+swxEOPKXMqHiVsc46zbLdb2gb/zSnHR1g/JfMDPgfmXZY2YtxtGz6PWQVavd9nOsXXtLgN/TtpqL5AJy4Yl6+BhjQBEcwYGVjo0r7WFVsl4Bzz8mVJmW5wELGFeG/CuBd6suDpRtN40QQhtWkr6TDYojFA09mbDvUBhTQ0uXwEUGcPzvXZT39tcvlI3gVH1rWSKT0+ad23ISS620yX6nEZy4M0/WED3Hv62pe/TvVm51fzie+8qddpiVYD7nfru7SXoadZR6xylwLJgfN0/ILmiOTYr1YScjcqDqy6ib6QL1lDiXOfHY3XqTpGLH4Xx+4xIor//0RPJ661eJu82pC/g/6Utomi9LtKUXVv4RW/GX1k3nkNW1IwzdWoBCgDO5pOCKarkrxLj/m426ODIXXMnyEHN7tOiheUBe+iGffZttrOoNjvFXfqODso13teX7hA4WNSrlctuaNpsiVfrwHzR1NsTwg14egTu3euiCZIEku5lEJoxzK1DtRvEGiKCbcRxixceOVoPsHaoWwncEgyQ820FSibnKaPZ7vQQy3/iJkclJB0scDTX02vs+FiabUQ5kgSp53erh20PCtUuC1LGBoIsJgnVfQVSIIdPlK+tCLwEMRM4paLR5jdC2NlaNWgPdZO71F0w+x38aZAXOtgk4LYO6SxhZDaPfTY6i2lrnQAzw44aqHsBdRvIOD4viBtjUa9iad3NRgosbMhKmHR+/L+WsRo6/9gfiTcD0SYz4NC7oWdHcmfLkYvH5J2Onz2lQ6whnGzjRBXMAHISr2/AXl8/JfN2ll9GvRGpxEV01T9kVbTyUqAIRE28XQCw6xaJF65ZlfjwaKpNgSS/S403i7OAOpjB6aUE+hUEg1zuA5iOT8ZUZcmX5HoCDoRoe8jsgPFhrWakJZ0g5IfgtEiWklg/5Nwyvo/ZVuCkrkF8KUDLbe9dJYPOOq3T4z0p3+876ZWQ9dqQM8Hy+4EGOtmRZl8knitbxf3lbNAxhHKiuR+JbYrU9lqxKkqrtKTFPBep9Zz/zqSV2To9tkyB5RWajnEtT4Y9fsYuMmxu9/bUa4uDvmiWXsh5xQugPzYQJ1ubu+jhmwsIfHssSSGMnt53cK4U0kkVlM3tXM/c/akqUYDPkrWkbaaHwI64tjgi3b+e8zNdOwYNIXbQMcJeblBN9+9HzK1mOuE8m0ucx53fAt1I21dyjAB+LlgMmwgrkNAdRyLsV9NztMltlmT/S69sSAI10KMSP2vBL1+ggHbp92OW4CsWGcWhBsG/mjDw4LUrQSm+6QU+bAIxHvwBD9XJmO1AscRGo8+4LqJG6mhzY3VxTTGjSoP86oswHfH/nvr4p6Bp9EOZOVKP3y2jGx+o5xW5Td6ktoauMScTTBAbAUm9A478ARvxVTml0Yl4CAHOZtd01FKLQ9cke+Jkb/ug8ZBRfZA715ONx0ju+J4XLm51Dr2y7ZSJvQemze9F5YLZapz0dEE+XInYtCDqEDLdZBqLaDnouMjhZ8vYeqetrYaQDNNtk5hemSUFZ7fxFwanmvlie53mqI0VkHWKlwl3TQXdmNE8InQpRnQ6eH07XoebgKcvlkLvrKOOyhh8bfT4LVkLHPg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: cba19c64-a574-4864-e604-08dbf46c6e90 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:55.4902 (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: Uoe4SagvGwD6RYV7crVu0yVObAAda7rFAdGf7rn2s9RZQnxATg3Nbxn+BNT8PWzTyC1wZ2XKCBuenrRhntyteRZtYmXmBdPziBc0ZALxAYU= 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 logic of VF. Fixes: f26e82397f6d ("net/nfp: implement xstats") Cc: james.hershaw@corigine.com Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev_vf.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 7927f53403..88da593190 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -160,13 +160,17 @@ nfp_netvf_set_link_down(struct rte_eth_dev *dev __rte_unused) static int nfp_netvf_close(struct rte_eth_dev *dev) { + struct nfp_net_hw *net_hw; struct rte_pci_device *pci_dev; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; + net_hw = dev->data->dev_private; pci_dev = RTE_ETH_DEV_TO_PCI(dev); + rte_free(net_hw->eth_xstats_base); + /* * We assume that the DPDK application is stopping all the * threads/queues before calling the device close function. @@ -323,7 +327,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) if (eth_dev->data->mac_addrs == NULL) { PMD_INIT_LOG(ERR, "Failed to space for MAC address"); err = -ENOMEM; - goto dev_err_ctrl_map; + goto free_xstats; } nfp_read_mac(hw); @@ -360,8 +364,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) return 0; -dev_err_ctrl_map: - nfp_cpp_area_free(net_hw->ctrl_area); +free_xstats: + rte_free(net_hw->eth_xstats_base); return err; }