From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9B13DA0552 for ; Thu, 17 Nov 2022 15:27:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 95C8440DDC; Thu, 17 Nov 2022 15:27:31 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2115.outbound.protection.outlook.com [40.107.92.115]) by mails.dpdk.org (Postfix) with ESMTP id 81C4F40DDA for ; Thu, 17 Nov 2022 15:27:30 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b6q4OjKtFYe/Y/tCZRRmLp+4rAZVdNs4QTgpxTx7kcExLVYWCwr1SDbAO5XV00czXhbIa/z4snXD0E8PHyMynOSSCmBsffmTX0ja1LkRN/6fORkjKszbV/wNDvpyCgvt0hGAcATGsI0lNIO1S38tsHyne0opRy2kQMBmpyEcldWIGz8u4vISimAQHJ2L7k+3JxIedDgO0kVALXAMuLSuNRDhnbwtynOsfZK6McQz4z7pNkfiwKat8n/v/tKMyGjaJWpVQdevcI5+NZlEVi0yx6+avvUmBBNAqTPQOxbomQAOfxMrYewygRm+4+hhmIdI9hf6O7JjrXJ6rj6SxC1oEg== 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=yyoiu70mu/CvpwHiOFCSTuwtjm821huXz1BmTbXBzjI=; b=LKlgLsVJgGBYWt3Pb3O3Me6Uo2wj24f+t6Aa89BZEnycgfFfTO2RMptsPjqB6S1S6rw18YGkB9mzc2HeV+n5pC3EIzIYzoi+mdizRAUHAo0LFcqU5HMBaH6Tdyukwt8/fYNbBsDToK3IM6mZ7LM7e0Veds4K40gJct1vvANEoc1zWwbwG1OusAIbTqwR4uTiW+oe/ag+LGXWuAazIiJ+S0pdSL0FM5Iomu9bsrRkoakDAsERWEVvt3fPtyDyoEfwdFbpSka8T3ZltEGBUgXdd9Y+OfOtQWX9vRDUTfXs/Mn0LcfSaSa8Rw/kYZNESxJfE6Ld5b5gXV5a2tlGs8jqTA== 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=yyoiu70mu/CvpwHiOFCSTuwtjm821huXz1BmTbXBzjI=; b=rxbFQ0Se/Qu0VgLYKqXYdKkKmTN0yic0/nZvhhzR9tdDebrqBPbSmGK/36Hi9En8tVph0xpWMJ036ZSnWimbpxSv/bCau85wgS+zbRTvncAIcCxWjKn1O5eGj1//WH4pbdjddgZSX43knllG/enork4Oz6U5e4vQ8UI1lsTzPqE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB6037.namprd13.prod.outlook.com (2603:10b6:a03:3e2::9) by MW5PR13MB5463.namprd13.prod.outlook.com (2603:10b6:303:196::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.20; Thu, 17 Nov 2022 14:27:29 +0000 Received: from SJ0PR13MB6037.namprd13.prod.outlook.com ([fe80::9d7f:1fa0:af36:e57a]) by SJ0PR13MB6037.namprd13.prod.outlook.com ([fe80::9d7f:1fa0:af36:e57a%7]) with mapi id 15.20.5813.018; Thu, 17 Nov 2022 14:27:29 +0000 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: stable@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , Chaoyong He , =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH 19.11] net/nfp: fix memory leak in Rx Date: Thu, 17 Nov 2022 15:27:01 +0100 Message-Id: <20221117142701.3145276-1-niklas.soderlund@corigine.com> X-Mailer: git-send-email 2.38.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR2P281CA0171.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::16) To SJ0PR13MB6037.namprd13.prod.outlook.com (2603:10b6:a03:3e2::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB6037:EE_|MW5PR13MB5463:EE_ X-MS-Office365-Filtering-Correlation-Id: e0ec838a-5f08-408b-3564-08dac8a7db3f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G2EBT2/tdlPNFFVuamBFRZKlsUPOo5VxXLbqMGgXEjNlKcTzZ4M5rYB10B57BTWnPDRjEnirI5CXTyRQVemwxy93Z2rSUnlWU5m3wplpSK4Q9UldqRnB5UgL01iSsdOSm9LmcHL1MLVWWhbcF3gq5kHLC1CbGxjg/ckDA3Fq2325xDupHZJRC1gWFBPuFBsIsDX8nMR/XwlWjN2JYhdZQElwOeR1HF9FvaksRE02EMgQ3jXa04eG7S5qpnunarEE7vU79LRvzoh2iBefpXD4gczeOQGfN8Av/fXdAw3QPNx9rMAFhtPTwm9g9ctqX8kL61bN+ReyQ+xozcOfLOeKWEtz3GJFZfnwjvcdCffs8afGYEAU9fj9MIT6iatVU0q4x4P/OOEM8fodcb6PgS2uG/uXjWq2Qa+rTSuxIZ17ytemyv0cdlnfFRLojFV3SCFt8o4wufEtAVYXTzbH5O0AB5d8nprYijD0ZdhkTi/2HuUUImBOK7MmafYW4faXavR/JxhX1+827khxRJRn0Z7v2RSdGMRj8UfwIBXw1rRQ5onYQ6yXbYzeA6oIwblg2uO8c5iKUb+3Q5pe6LQBE/BMtXtvLAgldPc8BaFlMIZ1YMRqzmAnZjV56fYvKrC0UduEooqEdf/go0IVY0iahC/fK2pDI2D+tgMS8URDWMcjq5Z5JENT6tGYpPcZXGOwFq4kecgtuWRSDYyaCY7UKo3Yci9ymeVGYfsBXPJgDYwI/qg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB6037.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(376002)(396003)(366004)(346002)(39840400004)(136003)(451199015)(38350700002)(38100700002)(66946007)(2906002)(4326008)(8936002)(86362001)(83380400001)(316002)(1076003)(6916009)(54906003)(186003)(2616005)(36756003)(6486002)(478600001)(66556008)(66476007)(8676002)(41300700001)(107886003)(5660300002)(6506007)(52116002)(26005)(6666004)(6512007)(83323001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cjhiRDI5WmNJNVJndUsvUlZzQWRkTWRuS0kwTDd4ODAzcWtLay9qWkhDK1By?= =?utf-8?B?czNjdE5GVFdiZHNzL1dFelprU2laSFpIcTZXZ2NLaE9JQVU2T1M3S1BGRk9w?= =?utf-8?B?emxQL0E3RG5XeXpwcEhmb2p6bmJoVmJveEVROE5EMUVaRjJOckhOa3E4WXZM?= =?utf-8?B?cmtzK1I3V25uTERSYmNQZ3JGNUszN0JWQlV6dTRKVHh6RUN1OHRGWEdRZjhk?= =?utf-8?B?dDhxcWV5Nk5hclpOenVxNDB3VklKVU5jUFF2QndxbVl1MHVwVkpkNWdUbjQr?= =?utf-8?B?Z1p1NzRaWm03RWtmcHJPeUgyUUxZL0RFbnprMXdkNWVlTTl0dTFSWGdBMU1H?= =?utf-8?B?bW5lWXBodEhBT1NlNWVGTzV2VW5zTU5kSFlSVE5OMlBieDMyeEVQeklmc0J1?= =?utf-8?B?aHJoWjBEa3oxTW9WV0p0MlhUSk8wbjRiZGU5b01xemhRTTZaYlFleVF0TVNH?= =?utf-8?B?Y2NtNGsxbW9meko3NzVtdzVaV3ErL0R0ZjlENWprdStmK2FzM0UxTXV5Z250?= =?utf-8?B?ZXBtRXFQQkZzVEdBa1dySmhoR0cvdTBKZ0d6ZkRaSjNxTkExazkrSnQ3SmJ4?= =?utf-8?B?WjhHWmZXTEtxbldHZzdmUWFpeVhkSG41S1M4WDlZVjNrYmNSNU51R0xZOUxS?= =?utf-8?B?WjI2ZUZBYSt1ays5a3dDQzRQcEtIem9zRGR2a3VVR2F1MDArZW1xbG4rb0Z5?= =?utf-8?B?UzhwYUxXOGROODNUZU9oU3hOYmlobmo2eGJTSUtnTmZTVFR0Y05WbXNCMVZw?= =?utf-8?B?UzEvdU1JZlljK3Jjc1pFRDIwZHRkbitEcVczbnRKL1JDYnhVVEV6akRvZXNa?= =?utf-8?B?MDVFa1BUL3hUUytKV2lWU21OMjhMSFdia1dYNS9Xakx2Wkt4ZFk4OTdidnNi?= =?utf-8?B?K29KNWppNEJEYXA2OVJleDllYlA2OUVWcC9EZjM5U0liZ3hJN0p4ZHZhbFBp?= =?utf-8?B?SWIxSkUrbWd6bHdRYTVRZzd6bGJpTURSV25hZnQyTmloZkZCb0ZDNFRCSWc4?= =?utf-8?B?MUNQMS9XVXl5eTdvdk5pT3hTOUpNaGNWbkN6UzQ5cXRYUjF6TzJHT0ttYXhm?= =?utf-8?B?cit6bERQR0E1N24xcXBqSEhOR2h1cmNJT3M1UjRBNnBVR1FieUtGQ3lSTUNk?= =?utf-8?B?dUdzbnJMVytYZDVRS3VhNGE1dExmYnE1aWdabmlQSFdwakxyMHhrK0VBNEJ5?= =?utf-8?B?WWtDOXU1RWlaUVBiaVl1ODhnWDkyRG1mK3BZNUEwKzdPaDlEOXJLL3B6bEUz?= =?utf-8?B?UFNKTHFGbTZWeWcvSFhrSVZRWWtKK2pMdCsxOUNkeEs3Nm1KeUt0ZVpqZlg0?= =?utf-8?B?cWFveC9INldYbmw5U3NGM3pId05TWnIwckc5WFhSZmd5a1hjQzJUanl1VVda?= =?utf-8?B?SUJoYUZQeENlWHVBQTVuaUhhMVhsblhlZkEwTXlEZkZESy9SM2NmSG1Nd0ND?= =?utf-8?B?RjFZT1pHSkIwL0U1Z2ZiNUgzcTVXQVNjU3JLaDY4dXFSYXVOZHBFd3kzdkdv?= =?utf-8?B?dWFRLzFBdmd1TXp1Z0l2a2E0RlBOaU9QeGVkNTdiUnhxZWhQQ2E2RXo3aFRy?= =?utf-8?B?ZTFEMStCaXhpbElxNmpiQnBMMFR5Q0xTa2VIVjlKZWdRMExhOGJLbTBsRXZ6?= =?utf-8?B?d1Q3V25ldVkxekNlak1rTnVhQ0J4VksyRjV4T04vWjVodVVQZGJISjdpem5O?= =?utf-8?B?amhsOGNHRDRVMlV1U0tkOFVKNEtaM1ZWaGRLYXgrRno3TUpOZ3Q4My84eDln?= =?utf-8?B?Qng0eVVGTGpyQWlNRFExQzBEcUt6UkgyQnJMeGNhbENrME1XMHRXZG9Pek12?= =?utf-8?B?SGNhZHBHdzhxdW9lWmVoRStZa2xyQnFiai9MMStLY0c0cjNqYWx6THNWOVlJ?= =?utf-8?B?NkovUEdaNCtkUm5hdk05REhPRldUdGhSWlVZb1p0QnUxWllGL3Uxai9GUys1?= =?utf-8?B?SzB0RVNjMWpIZzBCQkhYZkFaUHVkR1FZVWhmOGVMdVJCbVdmZlRmM1VrRDZs?= =?utf-8?B?U2YxVTdtcHN0Z0t1L2NXaEt1U3hNK0pPWWlGS0lKTjhWdkZDck9qbmlUN1Z4?= =?utf-8?B?NENqVk0yY3hsNDhwekdHczliS2FJSmZFK3lveEtDMzArRE9EMFlvOUN5bVVa?= =?utf-8?B?N0FWdVM5alAzZ1pRb2gvdlpDSWhYMk10ZlpGeENUSmJ5RjdHU0FNb3cxNndr?= =?utf-8?B?RXc9PQ==?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0ec838a-5f08-408b-3564-08dac8a7db3f X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB6037.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2022 14:27:29.1355 (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: pbf69elDsImFnuzPqrQ877PG2+fGbhk1oVnD4cT35Ru8+kZchmOa5vkKfgDWDF6CqNuYCUhkVTvyv1pBrg8sU2nmR2ZTQ7jQH603iNTAxwQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR13MB5463 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org From: Long Wu [ upstream commit bb340f56fcb7bac9ec04c1c1ca7a2a4f3012c848 ] nfp_net_recv_pkts() should not return a value that less than 0 and the inappropriate return value in receive loop also causes the memory leak. Modify code to avoid return a value less than 0. Furthermore, When nfp_net_recv_pkts() break out from the receive loop because of packet problems, a rte_mbuf will not be freed and it will cause memory leak. Free the rte_mbuf before break out. Fixes: b812daadad0d ("nfp: add Rx and Tx") Signed-off-by: Long Wu Reviewed-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_net.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 76222ca5affd..f2fdff56636c 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -2035,8 +2035,9 @@ nfp_net_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) struct rte_mbuf *new_mb; uint16_t nb_hold; uint64_t dma_addr; - int avail; + uint16_t avail; + avail = 0; rxq = rx_queue; if (unlikely(rxq == NULL)) { /* @@ -2044,11 +2045,10 @@ nfp_net_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) * enabled. But the queue needs to be configured */ RTE_LOG_DP(ERR, PMD, "RX Bad queue\n"); - return -EINVAL; + return avail; } hw = rxq->hw; - avail = 0; nb_hold = 0; while (avail < nb_pkts) { @@ -2114,7 +2114,8 @@ nfp_net_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) hw->rx_offset, rxq->mbuf_size - hw->rx_offset, mb->data_len); - return -EINVAL; + rte_pktmbuf_free(mb); + break; } /* Filling the received mbuf with packet info */ -- 2.38.1