From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE1AC2EB87D; Fri, 16 Jan 2026 11:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563554; cv=none; b=SRET5WsqWvmkZPkLfeFD543sk6gdt8yDQbIqXDkQYFpPqML6CGtf/kNvi0eXL2gs5IhSJMSiBs1pISuKtsrvuplF6DSENvS1HeqePL5nXX+Nre1Avwr111Z6ypd79oEpMCYkDx5IlTGxwj/8AxNx0Ex8XZGpNy2MzYIpHczkXGs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563554; c=relaxed/simple; bh=M3vM7wuGXUDGMOm1gsHecMoC3vq28dry1w+H07aPvu4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=U3RaSORxJos6PxwE3buSitbcz33hzF+0/EVpzvCGogf9KMjELjy0cuYli2M9KpHpUqNZiEZ8WVufAcWD42pW2+RBtzOHA6E9KXYpp//H2yHxJNxZCs1Z/pdYe/lp+6Lgp3h/I9XMbYyKoiaqzi9BfLbgtieKmAzpvP4MDlfDiA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S3; Fri, 16 Jan 2026 19:39:03 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH 1/7] clk: st: clkgen-pll: Fix a memory leak in clkgen_odf_register() Date: Fri, 16 Jan 2026 19:38:41 +0800 Message-Id: <20260116113847.1827694-2-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S3 X-Coremail-Antispam: 1UD129KBjvdXoWrKFyftw4rGr45XF4rCF4xXrb_yoWfGFcEy3 y7X3sav34rCF43A3WUAw47ZryF93Wkurn3Wa1SyFW5K345XryUKrWFqrZ5Jr15WFWrGryD Gws7Aw15Cr47AjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbhAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUGwA2048vs2IY02 0Ec7CjxVAFwI0_JFI_Gr1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwA2z4 x0Y4vEx4A2jsIE14v26r1j6r4UM28EF7xvwVC2z280aVCY1x0267AKxVW8JVW8Jr1le2I2 62IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcV AFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG 0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc7CjxVAaw2AFwI0_JF0_Jw1l42 xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWU GwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI4 8JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4U MIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I 8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUemhwUUUUU X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiBwkJE2lp3rvU-AAAsZ Content-Type: text/plain; charset="utf-8" If clk_register_composite() fails, call kfree() to release div and gate. Fixes: b9b8e614b580 ("clk: st: Support for PLLs inside ClockGenA(s)") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li Reviewed-by: Brian Masney --- drivers/clk/st/clkgen-pll.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index c258ff87a171..a7d605b52cf3 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -742,8 +742,11 @@ static struct clk * __init clkgen_odf_register(const c= har *parent_name, &div->hw, &clk_divider_ops, &gate->hw, &clk_gate_ops, flags); - if (IS_ERR(clk)) + if (IS_ERR(clk)) { + kfree(div); + kfree(gate); return clk; + } =20 pr_debug("%s: parent %s rate %lu\n", __clk_get_name(clk), --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE22C30BF69; Fri, 16 Jan 2026 11:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563553; cv=none; b=ObCcR5Phliytwqu/S28rjwcn5FgEno8kbo5w4CzctsP6xpPDug6BA41ul0rlz93qkaxvy3mw1Tl5vRR3VFAzeMhCo99vkKJd2vn8fTkgJsrmbuFPFFVpU8CUmCX/ZAzQRBuL4uTwibbWISEmJP1nwqp4BA346hKM2V3A2Lh9iLM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563553; c=relaxed/simple; bh=2pGahujOT1l34zZrt6mP5J5Ff6Vfzmzb7PIvnIcVxc0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n5nYTAf8QQiKjIYH3QlokFamXu8GZ743INGPOlLNmyAuVfvHk7S+ozaYJSvD2Lr+bHcuxHQTEqyJtT+qZVcrX4vsXuriIqu6vevm9Imgl34r3CGphw9LuG2cxetyB+e7Z/5PDYfuEnH9JmYlx5E+0YcbhgdOlF19JPvvjh5VLQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S4; Fri, 16 Jan 2026 19:39:04 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li Subject: [PATCH 2/7] clk: st: clkgen-pll: Rename some variables in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:42 +0800 Message-Id: <20260116113847.1827694-3-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S4 X-Coremail-Antispam: 1UD129KBjvJXoW7CrW5tF1rZFyUuFyrGryrXrb_yoW8Gw1rpa 4rAasIv398Xr4q9Fs3JrZ5uF90g3Z7KFWxCrWvkw1FvwsxZry5Xr4rXa48Zr15u3yxuFWY qF4qvr18ZF1UtF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBl14x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jryl82xGYIkIc2 x26xkF7I0E14v26r4j6ryUM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0 Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l84 ACjcxK6I8E87Iv67AKxVWUJVW8JwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UM2AI xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x vE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkF7I0En4kS14v26r126r1DMx AIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_ Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwI xGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWx JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcV C2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUULZ2DUUUUU== X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiCQ8JE2lp34rSnwAAsE Content-Type: text/plain; charset="utf-8" In clkgen_c32_pll_setup(), `clk` is used for two distint variables' name. This patch rename the preceding `clk` to `pll_clk`. The rename is in preparation for cleaning up some memory leaks. Signed-off-by: Haoxiang Li Reviewed-by: Brian Masney --- drivers/clk/st/clkgen-pll.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index a7d605b52cf3..0390f6834a0d 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -755,11 +755,10 @@ static struct clk * __init clkgen_odf_register(const = char *parent_name, return clk; } =20 - static void __init clkgen_c32_pll_setup(struct device_node *np, struct clkgen_pll_data_clks *datac) { - struct clk *clk; + struct clk *pll_clk; const char *parent_name, *pll_name; void __iomem *pll_base; int num_odfs, odf; @@ -777,12 +776,12 @@ static void __init clkgen_c32_pll_setup(struct device= _node *np, =20 of_clk_detect_critical(np, 0, &pll_flags); =20 - clk =3D clkgen_pll_register(parent_name, datac->data, pll_base, pll_flags, + pll_clk =3D clkgen_pll_register(parent_name, datac->data, pll_base, pll_f= lags, np->name, datac->data->lock); - if (IS_ERR(clk)) return; + if (IS_ERR(pll_clk)) =20 - pll_name =3D __clk_get_name(clk); + pll_name =3D __clk_get_name(pll_clk); =20 num_odfs =3D datac->data->num_odfs; =20 --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14FF536655C; Fri, 16 Jan 2026 11:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; cv=none; b=Cpt0ITVB0UxuqPJJ1bFOab0bBb1kFLpJixBV8zCNbsUO+ZK951MsTtKDLmctIZnKyY0iPwQnIwd+V7EXS0wbrA0iCf0ha06GJJ0F/nIMqU7w5wUs/BOhin1twPuPXuHUTfadILwvykoJmkAen0oNZsWdNc7b16iSPtR7EKbSSlI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; c=relaxed/simple; bh=tIA0bHjOyuVp8tIikNsCrkcFSy2bdvB+nFtMgE8sPAE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nG7SN/j+/V3ea6DUqtMZmcvgHUeVq/xCnRkQvXfyRDxcyH1Ii+ONtA5xAQv2/f1xORTQS+M9QVlKJCWbL53HIWaNeihrhH3eCIk0h/gtohZZK4grdHV/US0eYjAaYvudfajiilqQwOOZLGkL6tLbeJNNjZ5+uXZoD49ufQaDC5E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S5; Fri, 16 Jan 2026 19:39:05 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li Subject: [PATCH 3/7] clk: st: clkgen-pll: Rename some variables in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:43 +0800 Message-Id: <20260116113847.1827694-4-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S5 X-Coremail-Antispam: 1UD129KBjvJXoW7CrW5tF1rZFyUtrWftFW5ZFb_yoW8Jw4Upa 4rJ34av39rXrWvgF4fJrZ3WF90q3Z7KFy09rWDKwnY9wsxAry5Zw45u34I93W5uryfuF43 tr4jyrW8uF1kJF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBl14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JrWl82xGYIkIc2 x26xkF7I0E14v26r4j6ryUM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0 Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l84 ACjcxK6I8E87Iv67AKxVWUJVW8JwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UM2AI xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x vE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkF7I0En4kS14v26r126r1DMx AIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_ Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwI xGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWx JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcV C2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUUtC7UUUUUU== X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiBwoJE2lp3rvVAQAAsm Content-Type: text/plain; charset="utf-8" In clkgen_c32_pll_setup(), `clk` is used for two distint variables' name. This patch rename the later `clk` to `odf_clk`. The rename is in preparation for cleaning up some memory leaks. Signed-off-by: Haoxiang Li --- drivers/clk/st/clkgen-pll.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index 0390f6834a0d..4ff9b35fe399 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -797,7 +797,7 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, goto err; =20 for (odf =3D 0; odf < num_odfs; odf++) { - struct clk *clk; + struct clk *odf_clk; const char *clk_name; unsigned long odf_flags =3D 0; =20 @@ -813,13 +813,13 @@ static void __init clkgen_c32_pll_setup(struct device= _node *np, of_clk_detect_critical(np, odf, &odf_flags); } =20 - clk =3D clkgen_odf_register(pll_name, pll_base, datac->data, + odf_clk =3D clkgen_odf_register(pll_name, pll_base, datac->data, odf_flags, odf, &clkgena_c32_odf_lock, clk_name); - if (IS_ERR(clk)) goto err; + if (IS_ERR(odf_clk)) =20 - clk_data->clks[odf] =3D clk; + clk_data->clks[odf] =3D odf_clk; } =20 of_clk_add_provider(np, of_clk_src_onecell_get, clk_data); --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14F3535FF69; Fri, 16 Jan 2026 11:39:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; cv=none; b=Sysx0Xs5qfldzBsLkbmQXy2ahUIjJ3aU5E/vuXTNIcb92ZxhaM7XM1zUwhv9Gu21Ut/+ZjCXIilgJSJGsqSjH4sIHCmJ0FVdnyd0Z49Jgr/bAtFrgGUantFq6mrQfRbjFnIAllgUAeyfRUniw5gG742mCIAXoAKp8oiN8krlmAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; c=relaxed/simple; bh=gXaaqGMwviSycFsCjnH8LyzyxS+OcfBfyf7/rQri/54=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LEjUXkmkc09fQZWl2K9XIRXHpbQ/Vv5+bB/xGpZ6F5QrSd55Dtdtm1WFHwBimRufcOeSW5u5LR4OZy0YQhHMU6yaMp2W/Xz3Z9umuYYS8jyId3rhS26RKqFW/ZEn9rQCUGLHGMlFlBQgV4MrHrL3h+gvpkiSthlt/t8zay2YK8U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S6; Fri, 16 Jan 2026 19:39:05 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH 4/7] clk: st: clkgen-pll: Add iounmap() in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:44 +0800 Message-Id: <20260116113847.1827694-5-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S6 X-Coremail-Antispam: 1UD129KBjvdXoWrZrWxXFyfuw1rJr1kCw47twb_yoWkuwcEv3 y0g34Ig345Gw1rAr1UWw4Sv34Yyws5uF1xWr18tayfta45XryUKrWFvrs3trySgF4akFyD Gw17Wr43Cr1UJjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUb6kFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2 IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E F7xvwVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8JVWxJw A2z4x0Y4vEx4A2jsIE14v26r4j6F4UM28EF7xvwVC2z280aVCY1x0267AKxVW8JVW8Jr1l e2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI 8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwAC jcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc7CjxVAaw2AFwI0_JF0_Jw 1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWU JVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7V AKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42 IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUYcTQUUUUU X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiCREJE2lp34rSowAAsm Content-Type: text/plain; charset="utf-8" Add a iounmap() to release the memory allocated by clkgen_get_register_base() in error path. Fixes: b9b8e614b580 ("clk: st: Support for PLLs inside ClockGenA(s)") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li Reviewed-by: Brian Masney --- drivers/clk/st/clkgen-pll.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index 4ff9b35fe399..0239835b4015 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -778,8 +778,8 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, =20 pll_clk =3D clkgen_pll_register(parent_name, datac->data, pll_base, pll_f= lags, np->name, datac->data->lock); - return; if (IS_ERR(pll_clk)) + goto err_unmap; =20 pll_name =3D __clk_get_name(pll_clk); =20 @@ -829,7 +829,11 @@ static void __init clkgen_c32_pll_setup(struct device_= node *np, kfree(pll_name); kfree(clk_data->clks); kfree(clk_data); +err_unmap: + if (pll_base) + iounmap(pll_base); } + static void __init clkgen_c32_pll0_setup(struct device_node *np) { clkgen_c32_pll_setup(np, --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14EAE35FF5F; Fri, 16 Jan 2026 11:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; cv=none; b=Z+yB9RsgQgNbXc6KTfFGC9Kd18hL4TWU3XRuXwjelElSkyd8Sxwy8sXYvHzAEZXWQIYejbNYO1iaHQu36pCG2Zv/Zmcg9Qn16JmI8UJsHPd4Ig8AwlMzEVghpa+vtug+XlC4PqPg/CuiVjIT601XocPq/UYGZZib8BU1VgJYhk8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563555; c=relaxed/simple; bh=ApmfrV1Xe+9b4hzmj1RsenxBQsP0HCN0eEoPI03LR/Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aBxO3VPHx4fGQJ6dHbJPMl9n4hZ8LGqIyxGo5jzRgWaV3p7cL1O9v6hpefMilhgBuSWZQyWWJM0lDIostjuT2NcuezpPddh4/xEDqNIJJMYnedaK4B6UfPOETq0DBYsrWhLAx2dKpEPIfbZbjZT31wEaG52aeX+yXFAWnZR3iik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S7; Fri, 16 Jan 2026 19:39:07 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH 5/7] clk: st: clkgen-pll: Add clk_unregister for pll_clk in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:45 +0800 Message-Id: <20260116113847.1827694-6-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S7 X-Coremail-Antispam: 1UD129KBjvJXoW7Cr18tw15WF43Zry5Gr1xZrb_yoW8Xw47pa 4rGw1Yy34DXr4vqF45JF4Duas8G3WIgFW7CFW7Gwn5uwnxJry5Jw4Y9a4I93WUA3yxuF4a gr1q9r40vF4UAF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBK14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2 z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr 1l84ACjcxK6I8E87Iv67AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1U M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkF7I0En4kS14v26r126r 1DMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_ Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x 0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8 JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIx AIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUbx9NDUUUUU= = X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiBwsJE2lp3rvVCAAAsu Content-Type: text/plain; charset="utf-8" In clkgen_c32_pll_setup(), clkgen_pll_register() allocated a clkgen_pll memory and registered a clk. Add clk_unregister() and kfree() to release the memory if error occurs. Fixes: b9b8e614b580 ("clk: st: Support for PLLs inside ClockGenA(s)") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li Reviewed-by: Brian Masney --- drivers/clk/st/clkgen-pll.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index 0239835b4015..f748e1fce735 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -764,7 +764,7 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, int num_odfs, odf; struct clk_onecell_data *clk_data; unsigned long pll_flags =3D 0; - + struct clkgen_pll *pll; =20 parent_name =3D of_clk_get_parent_name(np, 0); if (!parent_name) @@ -787,7 +787,7 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, =20 clk_data =3D kzalloc(sizeof(*clk_data), GFP_KERNEL); if (!clk_data) - return; + goto err_pll_unregister; =20 clk_data->clk_num =3D num_odfs; clk_data->clks =3D kcalloc(clk_data->clk_num, sizeof(struct clk *), @@ -829,6 +829,10 @@ static void __init clkgen_c32_pll_setup(struct device_= node *np, kfree(pll_name); kfree(clk_data->clks); kfree(clk_data); +err_pll_unregister: + pll =3D to_clkgen_pll(__clk_get_hw(pll_clk)); + clk_unregister(pll_clk); + kfree(pll); err_unmap: if (pll_base) iounmap(pll_base); --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 844CB369218; Fri, 16 Jan 2026 11:39:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563557; cv=none; b=N88kbgCpW107XU77J+g0e9k8JHg5oDAkDbV8p32O0sS0in1Xald3MR/uWzbVXboi7P6mCZf3yjzoOSseZCz+Tee7qwnFTXkShna/AmaEulJgTPiIeMPgo0vlATbMKnD99ZDCUZzHXxOBDp70/ItZc2ModTsmoK28SMMxw+ISotc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563557; c=relaxed/simple; bh=fT/BnHCWjD1ABfa5cgJaDhLQAgxsF/atAKV+YKoBptg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ORI/Lr1nS6jjcDwavCL0xEimF806tKJ/8Vv2O+xE3l1tkC/YpJnWyOGAhUAMcXc/5xSr36TeWAKIjn6ujZxSn1cegPPjP34sTsG3czojXyrC1FNROlOZ5GJ2+PbPx+kC6muJRmvtiLWjmxowAaHvB9JRGhtvkgHQ7RLfbyPzG54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S8; Fri, 16 Jan 2026 19:39:08 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li Subject: [PATCH 6/7] clk: st: clkgen-pll: Remove redundant kfree() in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:46 +0800 Message-Id: <20260116113847.1827694-7-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S8 X-Coremail-Antispam: 1UD129KBjvdXoWrKr4ruF1DtF1Uuryktw13urg_yoW3CFcEkF WIkayIvw15Gr45Cw1Uua1fZ34Fv3Z5ZFn3WFn3t343t34UXryUGrWaqw4fXw13XrWfGrn0 kw1fGr1UCr1UJjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUb6kFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2 IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E F7xvwVC0I7IYx2IY67AKxVWUCVW8JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8JVWxJw A2z4x0Y4vEx4A2jsIE14v26r4j6F4UM28EF7xvwVC2z280aVCY1x0267AKxVW8JVW8Jr1l e2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI 8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwAC jcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc7CjxVAaw2AFwI0_JF0_Jw 1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWU JVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7V AKI48JMIIF0xvE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42 IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUYcTQUUUUU X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiDAYJE2lp3x-UCgADsN Content-Type: text/plain; charset="utf-8" In clkgen_c32_pll_setup(), pll_name is actually pll_clk -> core->name. This variable will be released in clk_unregister() -> __clk_release() if some error occurs. Thus kfree(pll_name) will cause a double free. Remove this redundant kfree(). Signed-off-by: Haoxiang Li Reviewed-by: Brian Masney --- drivers/clk/st/clkgen-pll.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index f748e1fce735..89f0454fa72e 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -826,7 +826,6 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, return; =20 err: - kfree(pll_name); kfree(clk_data->clks); kfree(clk_data); err_pll_unregister: --=20 2.25.1 From nobody Mon Feb 9 14:34:47 2026 Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60137378D9C; Fri, 16 Jan 2026 11:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563557; cv=none; b=MMPg7D1i95Js6QCc0dp9rl7JMjqcDAyJrOtwOqhC1i7mcmnGOyDKykn/sUgEyxcnJLAj1f3O5R/2lye1EOfQ8+h1wXtzvEKAl01PNyWyGiOXk7hd7LddTrNvIRkYz25ffuGHtkKMf9k1FxFzkTCj1PIUNGHGgSMIczAPCHqexaY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768563557; c=relaxed/simple; bh=JnkSFmQY9k6v8WohFjl1H0b7mO/x4zLqglFojc5fD18=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Zc7VAryZzKJXiYA3bu9YVTqJ6bc/W86ipZyUThZQaquFtWSA3oM8MM4u0gk4luNGlMWAD7+9IN6uk+Es9YbVuYbBVZRdahefFhUcvWNglFkRfj/R4HOukedMR9PxmrTiCiOvQ9ShLLR1unf75lGpzfyD/3Xqg4/MIzMVhv/D8Fo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-05 (Coremail) with SMTP id zQCowAC3TBBMI2ppZbMsBQ--.56400S9; Fri, 16 Jan 2026 19:39:08 +0800 (CST) From: Haoxiang Li To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH 7/7] clk: st: clkgen-pll: Add clk_unregister for odf_clk in clkgen_c32_pll_setup() Date: Fri, 16 Jan 2026 19:38:47 +0800 Message-Id: <20260116113847.1827694-8-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> References: <20260116113847.1827694-1-lihaoxiang@isrc.iscas.ac.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAC3TBBMI2ppZbMsBQ--.56400S9 X-Coremail-Antispam: 1UD129KBjvJXoW7Ar48Ar1ktF4rtr4UAFy5urg_yoW8trWxpa 4rJ34Yy34DXF4kWFs3Jrs8uF98K3Z2kFW7urWYyw1Fvw43Gry5Jw4Y934I93W5CrW8uw42 qr4q9r48uF4UtF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPj14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2 z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr 1UM28EF7xvwVC2z280aVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r4U JwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7 IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCY1x0262kKe7AKxVWUAV WUtwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2 6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2 Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_ Cr0_Gr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8Jw CI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUYcTQUUUU U X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiBgoJE2lp3sLUGAABsH Content-Type: text/plain; charset="utf-8" In clkgen_c32_pll_setup(), clkgen_odf_register() allocated clk_gate and clk_divider memory and registered a clk. Add clk_unregister() and kfree() to release the memory if error occurs. Initialize odf to zero for safe. Fixes: b9b8e614b580 ("clk: st: Support for PLLs inside ClockGenA(s)") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li --- drivers/clk/st/clkgen-pll.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c index 89f0454fa72e..3fc0af4b77c6 100644 --- a/drivers/clk/st/clkgen-pll.c +++ b/drivers/clk/st/clkgen-pll.c @@ -761,10 +761,12 @@ static void __init clkgen_c32_pll_setup(struct device= _node *np, struct clk *pll_clk; const char *parent_name, *pll_name; void __iomem *pll_base; - int num_odfs, odf; + int num_odfs, odf =3D 0; struct clk_onecell_data *clk_data; unsigned long pll_flags =3D 0; struct clkgen_pll *pll; + struct clk_gate *gate; + struct clk_divider *div; =20 parent_name =3D of_clk_get_parent_name(np, 0); if (!parent_name) @@ -808,7 +810,7 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, if (of_property_read_string_index(np, "clock-output-names", odf, &clk_name)) - return; + goto err_odf_unregister; =20 of_clk_detect_critical(np, odf, &odf_flags); } @@ -816,8 +818,8 @@ static void __init clkgen_c32_pll_setup(struct device_n= ode *np, odf_clk =3D clkgen_odf_register(pll_name, pll_base, datac->data, odf_flags, odf, &clkgena_c32_odf_lock, clk_name); - goto err; if (IS_ERR(odf_clk)) + goto err_odf_unregister; =20 clk_data->clks[odf] =3D odf_clk; } @@ -825,6 +827,14 @@ static void __init clkgen_c32_pll_setup(struct device_= node *np, of_clk_add_provider(np, of_clk_src_onecell_get, clk_data); return; =20 +err_odf_unregister: + while (--odf >=3D 0) { + gate =3D to_clk_gate(__clk_get_hw(clk_data->clks[odf])); + div =3D to_clk_divider(__clk_get_hw(clk_data->clks[odf])); + clk_unregister_composite(clk_data->clks[odf]); + kfree(div); + kfree(gate); + } err: kfree(clk_data->clks); kfree(clk_data); --=20 2.25.1