From patchwork Tue Feb 22 18:17:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Weiguo Li X-Patchwork-Id: 108031 X-Patchwork-Delegate: david.marchand@redhat.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 62E50A034E; Tue, 22 Feb 2022 19:18:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4B90541148; Tue, 22 Feb 2022 19:18:39 +0100 (CET) Received: from out203-205-221-164.mail.qq.com (out203-205-221-164.mail.qq.com [203.205.221.164]) by mails.dpdk.org (Postfix) with ESMTP id 7BB0E41147 for ; Tue, 22 Feb 2022 19:18:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1645553912; bh=3Xwe1yt9pooF1LxFuiCw3cs3ald74sLnBjqf9d7FZC0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Z3ePABQAg4J6PrknXy2pNeWDR7larGAUguI0nuqwxWmNsQo2jZxc7ObFIXbKaGHQI pOj9zOwn3sdAg9VmNWp8i/ohJ49NgqAQJvahQsxuXwkDJnGu7itwdMRyFZVsvrmru8 w+5EQF7Br4x+M5cfLYkdAw5Zx4S8M1dUPQi4x5RA= Received: from localhost.localdomain ([111.193.130.237]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id 49223207; Wed, 23 Feb 2022 02:18:18 +0800 X-QQ-mid: xmsmtpt1645553908txn4yah3y Message-ID: X-QQ-XMAILINFO: ND42uzdxTIzr2YEOj0mwip26hYkQOKN0Zxxf1g6Odo1xq3Pd2Ey1uZohbayMsJ GmQGn43fm8ze8SQ4Pvgw75DnAXXcbBjSredoHYPnlJD0kXwOF7IN5+VyqfHdOCAtP2UGf0j2yFf/ Z32JR/NkvQJqFB+ns+2YzLjYVSPhISa/Oz5Ws+VSfvLa2HZZibHCnzAgQDajT+miYMrhaUXasJLp 5u0kij0rwhS8gXzz/L+MjgEekHGAAxo+71RztnxPuDVlXIclC5HPF5DJT3D2AqS8CInMSvBHTqXr YqJrpOXC6SVGtid5wun1D/9vBGOw1oFzSo/oU2Ru/jcMUS5rxosSi7//T10pixDakj/wAAn+h8UG Sk6MfbLiF2PnzcI3yWNAMOBjhbf7L7KLDxu0AA/wrevfaNkjYbjSXaX5x/ZFU3bgq783oz3juSIx w0gK8jpiMxda++SI9AAK1dzbqcHh45poKC4Bbr4v0RH+zj+kOmve+VUVtJtQbX0pyrk0qSYIllcv 3Al3ECDb3C6welCfni+rW2jq4O7LZzIFcwSH5qE9mS3W9VohBBt9IAitoXRcd/ZpdncPhmDD/ar+ MpXgjbzDYIp8Zkmi6kh4uGHRvDG4CDhFIK0y1hFvaN+nMh2LZmU0j5+VpdH6SU6xeuNaUGm+CLfx 3DHhLqOtdLBE4XVpxqZN1aCi5AYNzO/U9LLfCcTxszWQ4ug1l6otID4OGqkq7F/LWNVaUp+B0Frk GnfUFE2IS5FHa8vl2N+RiFHuogxwFkr8ziayT4hzS4tt2B7sy2H+hlwoTVuFtj9ou1zMgPDAVNGc Hhe5bOrq1/AZpO6aVuiAPGpf+Z8ZHrvHZ67hxkY8bm1wzoliuLTER8zJb/16Tcc3U= From: Weiguo Li To: dev@dpdk.org Cc: adypodoman@gmail.com, xiaoyun.li@intel.com, tianfei.zhang@intel.com, bruce.richardson@intel.com, ivan.malov@oktetlabs.ru, jgrajcia@cisco.com, hkalra@marvell.com, ying.a.wang@intel.com, ting.xu@intel.com, simei.su@intel.com, qiming.yang@intel.com, motih@mellanox.com, shreyansh.jain@nxp.com, skoteshwar@marvell.com, stephen@networkplumber.org, kalesh-anakkur.purayil@broadcom.com, somnath.kotur@broadcom.com, declan.doherty@intel.com, gakhil@marvell.com, nicolas.chautru@intel.com Subject: [PATCH 01/20] baseband/acc100: fix a memory leak in acc100 queue setup Date: Wed, 23 Feb 2022 02:17:59 +0800 X-OQ-MSGID: <39845772f05511dd6d3bb6cce91d0313081cd007.1645551559.git.liwg06@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 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 We allocated memory for 'q', we don't free it when null check for 'd' fails and it will lead to memory leak. We can move null check for 'd' ahead of the memory allocation to fix it. Fixes: 060e76729302 ("baseband/acc100: add queue configuration") Signed-off-by: Weiguo Li Acked-by: Nicolas Chautru --- drivers/baseband/acc100/rte_acc100_pmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/baseband/acc100/rte_acc100_pmd.c b/drivers/baseband/acc100/rte_acc100_pmd.c index f86474f7e0..25e9e6435f 100644 --- a/drivers/baseband/acc100/rte_acc100_pmd.c +++ b/drivers/baseband/acc100/rte_acc100_pmd.c @@ -824,6 +824,10 @@ acc100_queue_setup(struct rte_bbdev *dev, uint16_t queue_id, struct acc100_queue *q; int16_t q_idx; + if (d == NULL) { + rte_bbdev_log(ERR, "Undefined device"); + return -ENODEV; + } /* Allocate the queue data structure. */ q = rte_zmalloc_socket(dev->device->driver->name, sizeof(*q), RTE_CACHE_LINE_SIZE, conf->socket); @@ -831,10 +835,6 @@ acc100_queue_setup(struct rte_bbdev *dev, uint16_t queue_id, rte_bbdev_log(ERR, "Failed to allocate queue memory"); return -ENOMEM; } - if (d == NULL) { - rte_bbdev_log(ERR, "Undefined device"); - return -ENODEV; - } q->d = d; q->ring_addr = RTE_PTR_ADD(d->sw_rings, (d->sw_ring_size * queue_id));