Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3650298pxj; Tue, 15 Jun 2021 05:49:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzFVbaibVhf8iSK1JRRUJTQc7v6MiHXYcvKOM/hZlUBQJ7/3SoIi1hO7PtBYOExxhEL2sd9 X-Received: by 2002:a92:c9c8:: with SMTP id k8mr17982614ilq.285.1623761373953; Tue, 15 Jun 2021 05:49:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623761373; cv=none; d=google.com; s=arc-20160816; b=hsoCUfGElU9+zZnuYA7LCqvyUip1dpxsoAV8GwRgvnfaHDPd1DhEpQ6sel6MDDg/u6 WOGS8Px2uGFKuBGA7qDeZEDmLrA6EOauWpplZPIXfi84nIyhGzDWy1FJoYoDABPY1WV0 56s0U8vKKiHnjVIMnHFeKJdhL/MdcUhmUEk9b/IgxroYVdu22OJaXOtRpehAyg2v8pkh H0anDMqD+DWG2num3I/yJOsSHK03bwYco0NRTyDko4/bngwOnaT7fUoa2pZ7aSH2kFGs tn9Owmng3rZvm9OPpSlIjhuxD0sT2cF1F6rj2wrFBgV0ozmzMjAmIUT52oK8Xi2poDLg xwyQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=RggrP0+jkpTCFVzGvP4bjYG94ARt2oR+SG9zExq0zgk=; b=kx+aAjQUV12v3ero/hwvfjmanW8CNk6gP9lPqsnhTxKEl4lJ8vwpew1NG1TlgitTji LMw3zJgq+e7fGpKiPUG+6J6csrKxQT7ksPMPzHCts9IjwA5+v0Rnj8n6IdXDysPyOS4a 9c5gb7QgfGuCfTs4/2kOUbWWJliTwk9UpD6+jQSCqUQ/6ig1JDU0xGc2vezY3d4d2Eun VPrJ5cKaZW0Zly+65NyC8pbAo59Ue9RKpkLx0XRMp06lNvxLESmmprZW9Wxr+rp1AL0U 8G3gLm4Mow4wfl/bfT4FaeK7Fmox5O2hFjnM+0Y4QH4emotaEkQ/XmbQEntSHarD74nm Di9g== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c15si18614298iln.17.2021.06.15.05.49.20; Tue, 15 Jun 2021 05:49:33 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230081AbhFOMuw (ORCPT + 99 others); Tue, 15 Jun 2021 08:50:52 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:4787 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229986AbhFOMuw (ORCPT ); Tue, 15 Jun 2021 08:50:52 -0400 Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4G47KY6PWYzXg87; Tue, 15 Jun 2021 20:43:45 +0800 (CST) Received: from dggpeml500017.china.huawei.com (7.185.36.243) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 15 Jun 2021 20:48:46 +0800 Received: from huawei.com (10.175.103.91) by dggpeml500017.china.huawei.com (7.185.36.243) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 15 Jun 2021 20:48:45 +0800 From: Yang Yingliang To: , , CC: Subject: [PATCH -next v2 2/2] ARM: imx: add missing clk_disable_unprepare() Date: Tue, 15 Jun 2021 20:52:39 +0800 Message-ID: <20210615125239.1348845-3-yangyingliang@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210615125239.1348845-1-yangyingliang@huawei.com> References: <20210615125239.1348845-1-yangyingliang@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.103.91] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpeml500017.china.huawei.com (7.185.36.243) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org clock source is prepared and enabled by clk_prepare_enable() in probe function, but no disable or unprepare in remove and error path. Fixes: 9454a0caff6a ("ARM: imx: add mmdc ipg clock operation for mmdc") Reported-by: Hulk Robot Signed-off-by: Yang Yingliang --- arch/arm/mach-imx/mmdc.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index 8e57691aafe2..4a6f1359e1e9 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c @@ -103,6 +103,7 @@ struct mmdc_pmu { struct perf_event *mmdc_events[MMDC_NUM_COUNTERS]; struct hlist_node node; struct fsl_mmdc_devtype_data *devtype_data; + struct clk *mmdc_ipg_clk; }; /* @@ -463,11 +464,13 @@ static int imx_mmdc_remove(struct platform_device *pdev) cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); perf_pmu_unregister(&pmu_mmdc->pmu); iounmap(pmu_mmdc->mmdc_base); + clk_disable_unprepare(pmu_mmdc->mmdc_ipg_clk); kfree(pmu_mmdc); return 0; } -static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base) +static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base, + struct clk *mmdc_ipg_clk) { struct mmdc_pmu *pmu_mmdc; char *name; @@ -495,6 +498,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b } mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev); + pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; if (mmdc_num == 0) name = "mmdc"; else @@ -568,9 +572,11 @@ static int imx_mmdc_probe(struct platform_device *pdev) val &= ~(1 << BP_MMDC_MAPSR_PSD); writel_relaxed(val, reg); - err = imx_mmdc_perf_init(pdev, mmdc_base); - if (err) + err = imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk); + if (err) { iounmap(mmdc_base); + clk_disable_unprepare(mmdc_ipg_clk); + } return err; } -- 2.25.1