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=-9.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 36B60C433DF for ; Thu, 20 Aug 2020 17:10:08 +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 022EA208A9 for ; Thu, 20 Aug 2020 17:10:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="3QqZLUXF"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sZDJL8G2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 022EA208A9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=qpj9ZVCUkjlWHFfJozb1av9RyKzxNdG+I5YDduKsf3c=; b=3QqZLUXF99S0Q683rcPogRm9p qkpqLgRdLGRGIsBTg20792O9NdNa/v/MrBnIDi4MkbJeUiONbqd1nDQ2WRVcGa9D8PCu+4Mhx6lUe ViLxQzgQ8mNJBOXWH1m/xEY3BpjLFHkSbgHCCmTSQDXNVbnRTkxgWKhG8ogp0f/cL7ToTfAbh3lG9 et+5z09xLVkrQLikVVZmT9vWqc96WUi7gc5r02gntDf/EwiI1tOhfND1G61OzKCAYMWdYZjuFuO2N E5DmEiitFWOTfczCEtl7G/BDkYeaeytCBJykG34zzOrQIlLpSDQQ1gj6lnAHerpCKZhw2frCmB3bV 9ymM4E4dg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k8o3Q-0006dL-8b; Thu, 20 Aug 2020 17:08:44 +0000 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k8o3N-0006av-3v for linux-arm-kernel@lists.infradead.org; Thu, 20 Aug 2020 17:08:42 +0000 Received: by mail-wm1-x341.google.com with SMTP id g75so2272685wme.4 for ; Thu, 20 Aug 2020 10:08:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:date:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=/R0k1jGWuhMoblqt/y/Rxs518YQHPPA6fBEtJHgtyO8=; b=sZDJL8G2LfU/6BRu0eKseTlgdQByMRU40zPpzst1uny/m8nTPOncCx5nHSPisw+m1g 4py17touSYiqoYFABUof5XWPk1yi2mV8BWjgQ4ZpFiA+dgrVgu9aQvDJm3t9FUVRSZMT a43MfyC9LoMebQyjh93lIS9SRJOZ15G9Le26Ntg8wbn75qbt4wJcIEyvTFF2xvrxqND9 lHpWeg/QCRKlvAiin/QIyOe+mbCvJ3vUDn0MXORn3YpTqK3abccdpfiPgsrb/2qHK2UA 32BwTAtT6SUSfkiWtn977+lSApwriSRvtcopuHAVP7DumSl0u5UmEp5Ny6FYpo6ViqPl ycQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:date:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=/R0k1jGWuhMoblqt/y/Rxs518YQHPPA6fBEtJHgtyO8=; b=qd+fT9zayu6ZWGxiq1aV+6RDzMUeY3nlIoBx3kdrBKkIfHW3k3lzffAyT89hvT5TI/ UPrZHVtclTHIH6OtEgqwzwvWdq0yBPpqZBD0/ZafaAS5h79BofHubGr636zNSNKP5EAp 9WfVAuSujZXmGjkRgvk7IdjKThZZAbB4iebHcb/MjcHuV76ZX0/aNorJ6R1G39KJxFOB Sd6WOuSEahky1KZM5Y8Cg74JO7x61uDdomzlfIA/E56c7nuuSzD0ocA64iC3siCoQQoA 4mbwEfAwKxlwVnQbReqgYjmlzA+tpcaG7qX7ZEm/0rteRw1noJXqcPZuGBrrC8lGOUAM hY4Q== X-Gm-Message-State: AOAM532FrZsYebNzLKZN5nuNOxQT+tMQXIYBVPprZiHHtfHY0m4ZgjnY ubUOGeX0wuy3PylWfXbJx+g= X-Google-Smtp-Source: ABdhPJyCV7zixOANhMWBD58S+ejf6+iFl/heYqQfFEISdtKbwuXzkMs6dVm0+YL1sOHG4mTA6Zr+Og== X-Received: by 2002:a1c:4b0d:: with SMTP id y13mr4338861wma.6.1597943318553; Thu, 20 Aug 2020 10:08:38 -0700 (PDT) Received: from medion (cpc83661-brig20-2-0-cust443.3-3.cable.virginm.net. [82.28.105.188]) by smtp.gmail.com with ESMTPSA id z12sm5359904wrp.20.2020.08.20.10.08.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 10:08:37 -0700 (PDT) From: Alex Dewar X-Google-Original-From: Alex Dewar Date: Thu, 20 Aug 2020 18:08:35 +0100 To: Krzysztof Kozlowski Subject: Re: [PATCH] memory: brcmstb_dpfe: Fix memory leak Message-ID: <20200820170835.eos4mia5aokkikog@medion> References: <20200818110201.69933-1-alex.dewar90@gmail.com> <20200820152944.GB17144@kozik-lap> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200820152944.GB17144@kozik-lap> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200820_130841_210633_5BEBCE66 X-CRM114-Status: GOOD ( 23.72 ) 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 , linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Markus Mayer , Alex Dewar , linux-arm-kernel@lists.infradead.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 Thu, Aug 20, 2020 at 05:29:44PM +0200, Krzysztof Kozlowski wrote: > 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 Good spot! I'll send a v2. > > > > > /* > > * 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