Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp964490pxb; Wed, 6 Apr 2022 05:29:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydNO6yYCNb3uTX5/g1oEUQjakeZz7jY7rYe20BOcd3e31TkXEPbJ72faRXjlNY3tS+Zz0o X-Received: by 2002:a17:902:bf09:b0:153:99a6:55b8 with SMTP id bi9-20020a170902bf0900b0015399a655b8mr8215507plb.142.1649248155273; Wed, 06 Apr 2022 05:29:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649248155; cv=none; d=google.com; s=arc-20160816; b=ODur8KkZ1ehLMOplGWda5b1YMwPDWCDKQ3UBkr2ZBIfINUYDtgMdJFNYZNOV7m7jEQ 2rI6uWzpu9XEyOhmoog5LpviDTD3Hno7DOML53gzEBZ8dwntd/6UE9fRKtV88OftYhUy 29N5gnTZVPL8PiFc9WLzNuzPcImnmEBR1GRiC4tyYlNImkH08r3C+r8X8KSrQjTgYgG6 fBCarH3rf71VMgsymV914pO9VdnNCe6cp4loCeZ54ankwX08PnrFMNuSyLPSVShNKwW6 lwVqD9Z3/I08suvi9ETAY1wgcm6gGV8tBlBV3NjccH5kEJG7QMPhI70cT1rkgv43CawX DrjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=z64xT00G5W/8dOlazjYwKR3rB72RjkyMrfO2NR+YQzQ=; b=ptv4myJz3J+gtrfOtR38Svj34t++mcGF7Krh4MkAJbvyUwLsOXBF0NIJKiqZ/XD3Zp 9TicZJUI5UaR71yYo+xVp/iA/5TyKA6RAVoYvR188zNC/bOG1oOv9icDME1pnuZo1wf3 km4QjZCdMAkgLHDFY8YOShzyKFmSkSDBk0eeWdugwFR7k9asLDJT2ObMNC6r3bjI7UCt 4YduVFPfXVSaqgBQJmQ4ISeX4D8YnbONOafMxFieH3fc/nL0oZqIigGE6smQMhH5MrpD v7gsuboFkTlfCMrhp5+LbF2ZNaBc3nPEp4+pGmSKAAnBHxYhY47C9FfXGFIpaCVh8CGW s7mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Lcn2YLn+; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id d10-20020a056a00198a00b004fa3a8dff54si17170569pfl.11.2022.04.06.05.29.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:29:15 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Lcn2YLn+; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 897D16FACE1; Wed, 6 Apr 2022 04:40:18 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1575469AbiDEXHr (ORCPT + 99 others); Tue, 5 Apr 2022 19:07:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357983AbiDEK1i (ORCPT ); Tue, 5 Apr 2022 06:27:38 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B2A1D1130; Tue, 5 Apr 2022 03:12:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 23C616172B; Tue, 5 Apr 2022 10:12:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31DE9C385A1; Tue, 5 Apr 2022 10:12:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153531; bh=IvyBkfbeIWILmVXwush284Vcs9+1LeJ2nOw1//Ki3mQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lcn2YLn+3zCqu+IlJnUY2PNdfe6Rv6LpCWY1cNt3+8+FPlZ+yT17fg3CZhWlNkVZ3 QB79b+dWqgnq87IKZBqjxBJVJMkyL9Jva3kTIjEd/IPbmugGveJnr/3SoZ9TIC2OZe KJsZg2ZMOoIROUrX/tNPVKbi5UWrQxOQQiANkN3g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Miaoqian Lin , Codrin Ciubotariu , Mark Brown , Sasha Levin Subject: [PATCH 5.10 256/599] ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe Date: Tue, 5 Apr 2022 09:29:10 +0200 Message-Id: <20220405070306.457934499@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miaoqian Lin [ Upstream commit 740dc3e846537c3743da98bf106f376023fd085c ] The device_node pointer is returned by of_parse_phandle() with refcount incremented. We should use of_node_put() on it when done. This function only calls of_node_put() in the regular path. And it will cause refcount leak in error path. Fixes: fdbcb3cba54b ("ASoC: atmel: machine driver for at91sam9x5-wm8731 boards") Signed-off-by: Miaoqian Lin Reviewed-by: Codrin Ciubotariu Link: https://lore.kernel.org/r/20220316111530.4551-1-linmq006@gmail.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/atmel/sam9x5_wm8731.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sound/soc/atmel/sam9x5_wm8731.c b/sound/soc/atmel/sam9x5_wm8731.c index 7745250fd743..529604a06c53 100644 --- a/sound/soc/atmel/sam9x5_wm8731.c +++ b/sound/soc/atmel/sam9x5_wm8731.c @@ -142,7 +142,7 @@ static int sam9x5_wm8731_driver_probe(struct platform_device *pdev) if (!cpu_np) { dev_err(&pdev->dev, "atmel,ssc-controller node missing\n"); ret = -EINVAL; - goto out; + goto out_put_codec_np; } dai->cpus->of_node = cpu_np; dai->platforms->of_node = cpu_np; @@ -153,12 +153,9 @@ static int sam9x5_wm8731_driver_probe(struct platform_device *pdev) if (ret != 0) { dev_err(&pdev->dev, "Failed to set SSC %d for audio: %d\n", ret, priv->ssc_id); - goto out; + goto out_put_cpu_np; } - of_node_put(codec_np); - of_node_put(cpu_np); - ret = devm_snd_soc_register_card(&pdev->dev, card); if (ret) { dev_err(&pdev->dev, "Platform device allocation failed\n"); @@ -167,10 +164,14 @@ static int sam9x5_wm8731_driver_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "%s ok\n", __func__); - return ret; + goto out_put_cpu_np; out_put_audio: atmel_ssc_put_audio(priv->ssc_id); +out_put_cpu_np: + of_node_put(cpu_np); +out_put_codec_np: + of_node_put(codec_np); out: return ret; } -- 2.34.1