From: Greg Kroah-Hartman Date: Wed, 15 Oct 2025 11:04:20 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v5.15.195~117 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6b2eea4873114af4c66e0bb32af5af9c2ffeffe;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: clocksource-drivers-clps711x-fix-resource-leaks-in-error-paths.patch iio-frequency-adf4350-fix-adf4350_reg3_12bit_clkdiv_mode.patch --- diff --git a/queue-5.4/clocksource-drivers-clps711x-fix-resource-leaks-in-error-paths.patch b/queue-5.4/clocksource-drivers-clps711x-fix-resource-leaks-in-error-paths.patch new file mode 100644 index 0000000000..15590d7f71 --- /dev/null +++ b/queue-5.4/clocksource-drivers-clps711x-fix-resource-leaks-in-error-paths.patch @@ -0,0 +1,67 @@ +From cd32e596f02fc981674573402c1138f616df1728 Mon Sep 17 00:00:00 2001 +From: Zhen Ni +Date: Thu, 14 Aug 2025 20:33:24 +0800 +Subject: clocksource/drivers/clps711x: Fix resource leaks in error paths + +From: Zhen Ni + +commit cd32e596f02fc981674573402c1138f616df1728 upstream. + +The current implementation of clps711x_timer_init() has multiple error +paths that directly return without releasing the base I/O memory mapped +via of_iomap(). Fix of_iomap leaks in error paths. + +Fixes: 04410efbb6bc ("clocksource/drivers/clps711x: Convert init function to return error") +Fixes: 2a6a8e2d9004 ("clocksource/drivers/clps711x: Remove board support") +Signed-off-by: Zhen Ni +Signed-off-by: Daniel Lezcano +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20250814123324.1516495-1-zhen.ni@easystack.cn +Signed-off-by: Greg Kroah-Hartman +--- + drivers/clocksource/clps711x-timer.c | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) + +--- a/drivers/clocksource/clps711x-timer.c ++++ b/drivers/clocksource/clps711x-timer.c +@@ -78,24 +78,33 @@ static int __init clps711x_timer_init(st + unsigned int irq = irq_of_parse_and_map(np, 0); + struct clk *clock = of_clk_get(np, 0); + void __iomem *base = of_iomap(np, 0); ++ int ret = 0; + + if (!base) + return -ENOMEM; +- if (!irq) +- return -EINVAL; +- if (IS_ERR(clock)) +- return PTR_ERR(clock); ++ if (!irq) { ++ ret = -EINVAL; ++ goto unmap_io; ++ } ++ if (IS_ERR(clock)) { ++ ret = PTR_ERR(clock); ++ goto unmap_io; ++ } + + switch (of_alias_get_id(np, "timer")) { + case CLPS711X_CLKSRC_CLOCKSOURCE: + clps711x_clksrc_init(clock, base); + break; + case CLPS711X_CLKSRC_CLOCKEVENT: +- return _clps711x_clkevt_init(clock, base, irq); ++ ret = _clps711x_clkevt_init(clock, base, irq); ++ break; + default: +- return -EINVAL; ++ ret = -EINVAL; ++ break; + } + +- return 0; ++unmap_io: ++ iounmap(base); ++ return ret; + } + TIMER_OF_DECLARE(clps711x, "cirrus,ep7209-timer", clps711x_timer_init); diff --git a/queue-5.4/iio-frequency-adf4350-fix-adf4350_reg3_12bit_clkdiv_mode.patch b/queue-5.4/iio-frequency-adf4350-fix-adf4350_reg3_12bit_clkdiv_mode.patch new file mode 100644 index 0000000000..f9badfca3a --- /dev/null +++ b/queue-5.4/iio-frequency-adf4350-fix-adf4350_reg3_12bit_clkdiv_mode.patch @@ -0,0 +1,37 @@ +From 1d8fdabe19267338f29b58f968499e5b55e6a3b6 Mon Sep 17 00:00:00 2001 +From: Michael Hennerich +Date: Fri, 29 Aug 2025 12:25:43 +0100 +Subject: iio: frequency: adf4350: Fix ADF4350_REG3_12BIT_CLKDIV_MODE +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Michael Hennerich + +commit 1d8fdabe19267338f29b58f968499e5b55e6a3b6 upstream. + +The clk div bits (2 bits wide) do not start in bit 16 but in bit 15. Fix it +accordingly. + +Fixes: e31166f0fd48 ("iio: frequency: New driver for Analog Devices ADF4350/ADF4351 Wideband Synthesizers") +Signed-off-by: Michael Hennerich +Signed-off-by: Nuno Sá +Link: https://patch.msgid.link/20250829-adf4350-fix-v2-2-0bf543ba797d@analog.com +Cc: +Signed-off-by: Jonathan Cameron +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/iio/frequency/adf4350.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/iio/frequency/adf4350.h ++++ b/include/linux/iio/frequency/adf4350.h +@@ -51,7 +51,7 @@ + + /* REG3 Bit Definitions */ + #define ADF4350_REG3_12BIT_CLKDIV(x) ((x) << 3) +-#define ADF4350_REG3_12BIT_CLKDIV_MODE(x) ((x) << 16) ++#define ADF4350_REG3_12BIT_CLKDIV_MODE(x) ((x) << 15) + #define ADF4350_REG3_12BIT_CSR_EN (1 << 18) + #define ADF4351_REG3_CHARGE_CANCELLATION_EN (1 << 21) + #define ADF4351_REG3_ANTI_BACKLASH_3ns_EN (1 << 22) diff --git a/queue-5.4/series b/queue-5.4/series index e621a61772..b65d8ddae9 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -75,3 +75,5 @@ uio_hv_generic-let-userspace-take-care-of-interrupt-mask.patch mm-hugetlb-avoid-soft-lockup-when-mprotect-to-large-memory-area.patch input-uinput-zero-initialize-uinput_ff_upload_compat-to-avoid-info-leak.patch pinctrl-check-the-return-value-of-pinmux_ops-get_function_name.patch +clocksource-drivers-clps711x-fix-resource-leaks-in-error-paths.patch +iio-frequency-adf4350-fix-adf4350_reg3_12bit_clkdiv_mode.patch