From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19861C433DF for ; Thu, 20 Aug 2020 15:31:34 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DB6A02075E for ; Thu, 20 Aug 2020 15:31:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="QGjasw7M" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DB6A02075E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EpmBE8if2pGv7eXGf7elP7ihmaEOZl2TYuyq6Cl1hyo=; b=QGjasw7MwnJUczhZqgohAw0vU XS7ERAfchBpz3/PjnBOIhAFQlNoNtD2t/Uy9EvOrxonoY5O82MXti1jmR0qaL4gGsLK8NORaTzlJ8 Z5dkxulgfFIh+HHRZwyncJ8N2Kz/zVzO0Bn2oI/GgQIYrKPXnMHA/3D9Y2961sP2Mx5bu/9afZw7W CDRHhvY3dIgO2IHHXM53HCaxrN+QSvylRmqAM5svjIbcrM/nZQI0eRHCUOHrEl1psFHOsKXzZwJwc ll5mlXI0+EW2XDwsujSy1hfnEFceTyexdgv9sK1qTIwBsR6g29PTSKogQMqFdzFN6+L6ocw4a8XYO CEqquQw0g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k8mVk-00017f-Md; Thu, 20 Aug 2020 15:29:52 +0000 Received: from mail-wr1-f65.google.com ([209.85.221.65]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k8mVh-00017E-Kx for linux-arm-kernel@lists.infradead.org; Thu, 20 Aug 2020 15:29:50 +0000 Received: by mail-wr1-f65.google.com with SMTP id y3so2433543wrl.4 for ; Thu, 20 Aug 2020 08:29:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=l7vM9zA2bl0VIVdITFGRlvEN94PC+ze3csdbSLab8aI=; b=VkkumgqKJuZu42RDExIYJXv9ATl30Nb7iLTholxIME0h+8iXrjiok9XVsj9LyBKvMn Q9kC+18ap2vrbjOn09x0dqWKrj8aOuwvjMx5Paoo8SAiSBcVpqxaoa+VM0+NTBTWMIYY p+yQqbez5cCZbEO3TmD6m3KbZ6DEkatDU6Gdnu9YotuLixrWn4b4I34mq3mgrHjQAEzi 8bBU/LfqkBV/zexohFrY1svr9r0XCVDY5guR5XmzrCYnUz/hbz1tjXR1W/U9oK56ryss qKY1NB2/I9oUENUDsA3q8zv/DEXKVWmp8+OtX86Jk+DE+Kbsd2+H4TdWnF4RsCSzyBzE N52A== X-Gm-Message-State: AOAM5320Vu4MQ7UKs5CxiR37cDHNZE3cXQGM/eDPS1kt5rgO5gTR7SkU 84zXpkbiA//+eScbWRlkBiY= X-Google-Smtp-Source: ABdhPJw4FMm8La7t7y8hXO1Lq1u3nZ58jXNmmht94PsXzJk1P30z+LFva57a5vdyIeqEil23i2ZnTw== X-Received: by 2002:a05:6000:10c6:: with SMTP id b6mr3676401wrx.257.1597937387025; Thu, 20 Aug 2020 08:29:47 -0700 (PDT) Received: from kozik-lap ([194.230.155.216]) by smtp.googlemail.com with ESMTPSA id d7sm4877977wra.29.2020.08.20.08.29.45 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2020 08:29:46 -0700 (PDT) Date: Thu, 20 Aug 2020 17:29:44 +0200 From: Krzysztof Kozlowski To: Alex Dewar Subject: Re: [PATCH] memory: brcmstb_dpfe: Fix memory leak Message-ID: <20200820152944.GB17144@kozik-lap> References: <20200818110201.69933-1-alex.dewar90@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200818110201.69933-1-alex.dewar90@gmail.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200820_112949_730508_BDB511D8 X-CRM114-Status: GOOD ( 20.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, Markus Mayer , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Aug 18, 2020 at 12:02:01PM +0100, Alex Dewar wrote: > In brcmstb_dpfe_download_firmware(), memory is allocated to variable fw by > firmware_request_nowarn(), but never released. Fix up to release fw on > all return paths. > > Signed-off-by: Alex Dewar > --- > drivers/memory/brcmstb_dpfe.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c > index 60e8633b1175..f24a9dc65f3c 100644 > --- a/drivers/memory/brcmstb_dpfe.c > +++ b/drivers/memory/brcmstb_dpfe.c > @@ -616,7 +616,7 @@ static int brcmstb_dpfe_download_firmware(struct brcmstb_dpfe_priv *priv) > const u32 *dmem, *imem; > struct init_data init; > const void *fw_blob; > - int ret; > + int ret = 0; This does not look needed. Why initializing it? You cannot jump to release_fw label or reach it without going through assignment. Best regards, Krzysztof > > /* > * Skip downloading the firmware if the DCPU is already running and > @@ -647,8 +647,10 @@ static int brcmstb_dpfe_download_firmware(struct brcmstb_dpfe_priv *priv) > return (ret == -ENOENT) ? -EPROBE_DEFER : ret; > > ret = __verify_firmware(&init, fw); > - if (ret) > - return -EFAULT; > + if (ret) { > + ret = -EFAULT; > + goto release_fw; > + } > > __disable_dcpu(priv); > > @@ -667,18 +669,20 @@ static int brcmstb_dpfe_download_firmware(struct brcmstb_dpfe_priv *priv) > > ret = __write_firmware(priv->dmem, dmem, dmem_size, is_big_endian); > if (ret) > - return ret; > + goto release_fw; > ret = __write_firmware(priv->imem, imem, imem_size, is_big_endian); > if (ret) > - return ret; > + goto release_fw; > > ret = __verify_fw_checksum(&init, priv, header, init.chksum); > if (ret) > - return ret; > + goto release_fw; > > __enable_dcpu(priv); > > - return 0; > +release_fw: > + release_firmware(fw); > + return ret; > } > > static ssize_t generic_show(unsigned int command, u32 response[], > -- > 2.28.0 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel