Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1217026pxb; Fri, 6 Nov 2020 04:13:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJyXg+9t1TNe8FegsQFL7/q/i5Eel0LDVemLsiaCtMPillaOfUQJXrRW9pRKPeAgGH5gt3a1 X-Received: by 2002:a50:ff02:: with SMTP id a2mr1627683edu.364.1604664782539; Fri, 06 Nov 2020 04:13:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604664782; cv=none; d=google.com; s=arc-20160816; b=MoH4PyxFLX8f8DaIhayEy0UEilcAIr4Dy4SuHxV7vNvpC5cCucXIxnowdpmMe41mYU ohQZ8U3h++BrFh3B1C53wgzskH4R8H/hLyVQ0wrkpiM2bBL8Q4a3yYnc7mvNcvJFHzso gTxvEpXLTeLx6rZpkAotN0FpFcJxGdIcDn2OTe8NNWuVXkp6sW7BGxy+rX+pJ+fZrSun /buquTgkxaMRd9NzstCy71+Wrk0/rJDs9yvZX8/LHBgnHbcSq9edgzWvyU5xOu5W38U4 +g6KJkzKPA7cPLC/XNNAA0jYI5y71hY34qp/S6oT83uLLDVQHlBGIb/hZRNOKStdtbZD WZpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:to:from; bh=ahDD2SpZesC/OHxZNokCbjLZkxQmqZytwLj8RBBWJBc=; b=wYW8AqX2qVdnOjB3BbOANhGS9DI/Quhw+QXcJzJ4PLdgk+iY3t+y3RmZvoj5Ga/ldU s3SL3gEByjNQpD5D56+xQ/GiGzaKaiIx6qwIRV8V94zN9vWK7xfhWgB9BVxtEHNxFIy+ qw3rgEu9ZJKfhSyWL8sUBFX8zajd8Q6lq2fpIUmbYMsiwzX82EXF/+9p9xH/VSxXtK5N uzb9NcMyWYFKcTxEEFbtiRj6w1mOsXrMeRTMRiedhl9Or9NHUkiNdpR9glqI/i9f72DO HJ7Hx3rGm8wDNKEcPBXQUAFzFyicoJWnopaDlIaQ4HtJLM9FwHGgpGU9XuJaTnd0poXU Dqlw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d10si988219edo.243.2020.11.06.04.12.39; Fri, 06 Nov 2020 04:13:02 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727249AbgKFMLA (ORCPT + 99 others); Fri, 6 Nov 2020 07:11:00 -0500 Received: from szxga07-in.huawei.com ([45.249.212.35]:7417 "EHLO szxga07-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726317AbgKFMK7 (ORCPT ); Fri, 6 Nov 2020 07:10:59 -0500 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4CSK3c5572z73Tn; Fri, 6 Nov 2020 20:10:52 +0800 (CST) Received: from huawei.com (10.151.151.249) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.487.0; Fri, 6 Nov 2020 20:10:48 +0800 From: Dongjiu Geng To: , , , , Subject: [PATCH] clk: hisilicon: Fix the memory leak issues Date: Fri, 6 Nov 2020 20:35:25 +0000 Message-ID: <20201106203525.9991-1-gengdongjiu@huawei.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.151.151.249] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When return errors, the clock driver does not unmap the mapped memory, so fix this issue. Signed-off-by: Dongjiu Geng --- drivers/clk/hisilicon/clk-hi3620.c | 8 ++++++-- drivers/clk/hisilicon/clk.c | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/clk/hisilicon/clk-hi3620.c b/drivers/clk/hisilicon/clk-hi3620.c index a3d04c7c3da8..d5f1a8df4b1c 100644 --- a/drivers/clk/hisilicon/clk-hi3620.c +++ b/drivers/clk/hisilicon/clk-hi3620.c @@ -463,12 +463,16 @@ static void __init hi3620_mmc_clk_init(struct device_node *node) } clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL); - if (WARN_ON(!clk_data)) + if (WARN_ON(!clk_data)) { + iounmap(base); return; + } clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL); - if (!clk_data->clks) + if (!clk_data->clks) { + iounmap(base); return; + } for (i = 0; i < num; i++) { struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i]; diff --git a/drivers/clk/hisilicon/clk.c b/drivers/clk/hisilicon/clk.c index 54d9fdc93599..53acaff32934 100644 --- a/drivers/clk/hisilicon/clk.c +++ b/drivers/clk/hisilicon/clk.c @@ -69,8 +69,10 @@ struct hisi_clock_data *hisi_clk_init(struct device_node *np, } clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL); - if (!clk_data) + if (!clk_data) { + iounmap(base); goto err; + } clk_data->base = base; clk_table = kcalloc(nr_clks, sizeof(*clk_table), GFP_KERNEL); @@ -82,6 +84,7 @@ struct hisi_clock_data *hisi_clk_init(struct device_node *np, of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data->clk_data); return clk_data; err_data: + iounmap(base); kfree(clk_data); err: return NULL; -- 2.17.1