Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2711959pxv; Sun, 11 Jul 2021 23:30:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0CNQhPQ2H7k8NHYvU6ay9XtwSt6/Q5LELlCnnnDkvTQVzGFDbswUjYapQrxH3zNfZazxz X-Received: by 2002:a5e:9e02:: with SMTP id i2mr9257846ioq.198.1626071446996; Sun, 11 Jul 2021 23:30:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626071446; cv=none; d=google.com; s=arc-20160816; b=0qBw/ph7l/WlZjnBPyLAhlfDp7Tq8A/mJJn9XWzgIG03nbojdgPhqPCjMlGn4CPKl/ jlMLyKaMoWJmWkbFGPDSS39QvP09FZjH2LUH+mTA7Ks01WZUa4dBShMckC+RxIsNe0/B uy+8XqdLLtOYjOtm5TP7wyx0KqKUrUui1+8XuYObukVtlg/c7kDbf+fVsI1aimkENl/L C+Ncff2i717rtng+FrRO80M8WSfgrzL1k/eo767FrKuipJRS6hxFfWa3nol/QpMSH3zm NP081bHQOR9InEuOcV+P9DRDeFCWRbo11hBJTUU89ahaCWYu884X7+TZl54fOATk8ja2 au5A== 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=FYJ0wEZ3VQs4VXDT1/1Vcgpw1kBZ64Q267+YZTdncGA=; b=enK998QyyO1UWtIHCW8kfcdNBY3OXthQvZ3ju16yaSkqWoj5BMvDLUPWNZOVU35/as Vqp5YC6l+YBMsWfO/mqS+LknVIi7w5cH0xZA8Ib2A/kwS3KsiEvlol4DU9ci9LUUlxid 25O4gfX2xjRbb7xZ5uxiRIErFk30QjAbH9jYPiEUKzaed5oLIEXmUtvzbgKCgm+V4K05 TIIftbM/YXw7UvqwicouoOtNqAiLDzBhg2QrBnQj52Zi/092m4ztLw8oqgy2AavTBQQJ 5dGDq02JOe1FzjFx+0aTtT3PSBGw+47ZCjuBQtDCMYl8mpuhD7xGdgXPqlQB3tWKYWgj HdfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=UM+JxYLm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p31si18761496jac.95.2021.07.11.23.30.35; Sun, 11 Jul 2021 23:30:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=UM+JxYLm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235883AbhGLGc4 (ORCPT + 99 others); Mon, 12 Jul 2021 02:32:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:47908 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235646AbhGLG31 (ORCPT ); Mon, 12 Jul 2021 02:29:27 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9426D610FB; Mon, 12 Jul 2021 06:25:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626071119; bh=U4zSdmJ99GzKDrZ0BLge98AWioq+uoZOKAU3R5rgYQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UM+JxYLmV5qKdWQ5D4pX7XnmdajjnuE9Exmn7V+KFx89HA6AUC+ZFwBIuW+TpXl5I VX/A8hMAGxRJCTEA5qFFd0pYKiT3ndYN5MkcHGsoy8qGQzzm5lsW4OzI/Go4PVUYcV BE0V2muIlmeAIYzsXSTiZHga0VjmXYgaCTYlfxBY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hulk Robot , Yang Yingliang , Mark Brown , Sasha Levin Subject: [PATCH 5.4 282/348] ASoC: rk3328: fix missing clk_disable_unprepare() on error in rk3328_platform_probe() Date: Mon, 12 Jul 2021 08:11:06 +0200 Message-Id: <20210712060741.071006503@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060659.886176320@linuxfoundation.org> References: <20210712060659.886176320@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yang Yingliang [ Upstream commit d14eece945a8068a017995f7512ea2beac21e34b ] Fix the missing clk_disable_unprepare() before return from rk3328_platform_probe() in the error handling case. Fixes: c32759035ad2 ("ASoC: rockchip: support ACODEC for rk3328") Reported-by: Hulk Robot Signed-off-by: Yang Yingliang Link: https://lore.kernel.org/r/20210518075847.1116983-1-yangyingliang@huawei.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/rk3328_codec.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sound/soc/codecs/rk3328_codec.c b/sound/soc/codecs/rk3328_codec.c index 287c962ba00d..514ebe16bbfa 100644 --- a/sound/soc/codecs/rk3328_codec.c +++ b/sound/soc/codecs/rk3328_codec.c @@ -472,7 +472,8 @@ static int rk3328_platform_probe(struct platform_device *pdev) rk3328->pclk = devm_clk_get(&pdev->dev, "pclk"); if (IS_ERR(rk3328->pclk)) { dev_err(&pdev->dev, "can't get acodec pclk\n"); - return PTR_ERR(rk3328->pclk); + ret = PTR_ERR(rk3328->pclk); + goto err_unprepare_mclk; } ret = clk_prepare_enable(rk3328->pclk); @@ -482,19 +483,34 @@ static int rk3328_platform_probe(struct platform_device *pdev) } base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(base)) - return PTR_ERR(base); + if (IS_ERR(base)) { + ret = PTR_ERR(base); + goto err_unprepare_pclk; + } rk3328->regmap = devm_regmap_init_mmio(&pdev->dev, base, &rk3328_codec_regmap_config); - if (IS_ERR(rk3328->regmap)) - return PTR_ERR(rk3328->regmap); + if (IS_ERR(rk3328->regmap)) { + ret = PTR_ERR(rk3328->regmap); + goto err_unprepare_pclk; + } platform_set_drvdata(pdev, rk3328); - return devm_snd_soc_register_component(&pdev->dev, &soc_codec_rk3328, + ret = devm_snd_soc_register_component(&pdev->dev, &soc_codec_rk3328, rk3328_dai, ARRAY_SIZE(rk3328_dai)); + if (ret) + goto err_unprepare_pclk; + + return 0; + +err_unprepare_pclk: + clk_disable_unprepare(rk3328->pclk); + +err_unprepare_mclk: + clk_disable_unprepare(rk3328->mclk); + return ret; } static const struct of_device_id rk3328_codec_of_match[] = { -- 2.30.2