From: Greg Kroah-Hartman Date: Mon, 27 Jun 2022 10:45:16 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v5.4.202~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=346e68c2be9c1c14c106319207797fcfd2293e88;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: arm-cns3xxx-fix-refcount-leak-in-cns3xxx_init.patch arm-dts-imx6qdl-correct-pu-regulator-ramp-delay.patch arm-exynos-fix-refcount-leak-in-exynos_map_pmu.patch arm-fix-refcount-leak-in-axxia_boot_secondary.patch kbuild-link-vmlinux-only-once-for-config_trim_unused_ksyms-2nd-attempt.patch modpost-fix-section-mismatch-check-for-exported-init-exit-sections.patch random-update-comment-from-copy_to_user-copy_to_iter.patch soc-bcm-brcmstb-pm-pm-arm-fix-refcount-leak-in-brcmstb_pm_probe.patch --- diff --git a/queue-5.4/arm-cns3xxx-fix-refcount-leak-in-cns3xxx_init.patch b/queue-5.4/arm-cns3xxx-fix-refcount-leak-in-cns3xxx_init.patch new file mode 100644 index 00000000000..42d10ac0210 --- /dev/null +++ b/queue-5.4/arm-cns3xxx-fix-refcount-leak-in-cns3xxx_init.patch @@ -0,0 +1,40 @@ +From 1ba904b6b16e08de5aed7c1349838d9cd0d178c5 Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Sun, 5 Jun 2022 11:58:41 +0400 +Subject: ARM: cns3xxx: Fix refcount leak in cns3xxx_init + +From: Miaoqian Lin + +commit 1ba904b6b16e08de5aed7c1349838d9cd0d178c5 upstream. + +of_find_compatible_node() returns a node pointer with refcount +incremented, we should use of_node_put() on it when done. +Add missing of_node_put() to avoid refcount leak. + +Fixes: 415f59142d9d ("ARM: cns3xxx: initial DT support") +Signed-off-by: Miaoqian Lin +Acked-by: Krzysztof Halasa +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/mach-cns3xxx/core.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/arm/mach-cns3xxx/core.c ++++ b/arch/arm/mach-cns3xxx/core.c +@@ -376,6 +376,7 @@ static void __init cns3xxx_init(void) + /* De-Asscer SATA Reset */ + cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA)); + } ++ of_node_put(dn); + + dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-sdhci"); + if (of_device_is_available(dn)) { +@@ -389,6 +390,7 @@ static void __init cns3xxx_init(void) + cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO)); + cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SDIO)); + } ++ of_node_put(dn); + + pm_power_off = cns3xxx_power_off; + diff --git a/queue-5.4/arm-dts-imx6qdl-correct-pu-regulator-ramp-delay.patch b/queue-5.4/arm-dts-imx6qdl-correct-pu-regulator-ramp-delay.patch new file mode 100644 index 00000000000..383ef99db32 --- /dev/null +++ b/queue-5.4/arm-dts-imx6qdl-correct-pu-regulator-ramp-delay.patch @@ -0,0 +1,47 @@ +From 93a8ba2a619816d631bd69e9ce2172b4d7a481b8 Mon Sep 17 00:00:00 2001 +From: Lucas Stach +Date: Wed, 11 May 2022 18:08:23 +0200 +Subject: ARM: dts: imx6qdl: correct PU regulator ramp delay + +From: Lucas Stach + +commit 93a8ba2a619816d631bd69e9ce2172b4d7a481b8 upstream. + +Contrary to what was believed at the time, the ramp delay of 150us is not +plenty for the PU LDO with the default step time of 512 pulses of the 24MHz +clock. Measurements have shown that after enabling the LDO the voltage on +VDDPU_CAP jumps to ~750mV in the first step and after that the regulator +executes the normal ramp up as defined by the step size control. + +This means it takes the regulator between 360us and 370us to ramp up to +the nominal 1.15V voltage for this power domain. With the old setting of +the ramp delay the power up of the PU GPC domain would happen in the middle +of the regulator ramp with the voltage being at around 900mV. Apparently +this was enough for most units to properly power up the peripherals in the +domain and execute the reset. Some units however, fail to power up properly, +especially when the chip is at a low temperature. In that case any access +to the GPU registers would yield an incorrect result with no way to recover +from this situation. + +Change the ramp delay to 380us to cover the measured ramp up time with a +bit of additional slack. + +Fixes: 40130d327f72 ("ARM: dts: imx6qdl: Allow disabling the PU regulator, add a enable ramp delay") +Signed-off-by: Lucas Stach +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/boot/dts/imx6qdl.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -766,7 +766,7 @@ + regulator-name = "vddpu"; + regulator-min-microvolt = <725000>; + regulator-max-microvolt = <1450000>; +- regulator-enable-ramp-delay = <150>; ++ regulator-enable-ramp-delay = <380>; + anatop-reg-offset = <0x140>; + anatop-vol-bit-shift = <9>; + anatop-vol-bit-width = <5>; diff --git a/queue-5.4/arm-exynos-fix-refcount-leak-in-exynos_map_pmu.patch b/queue-5.4/arm-exynos-fix-refcount-leak-in-exynos_map_pmu.patch new file mode 100644 index 00000000000..23889b121f8 --- /dev/null +++ b/queue-5.4/arm-exynos-fix-refcount-leak-in-exynos_map_pmu.patch @@ -0,0 +1,33 @@ +From c4c79525042a4a7df96b73477feaf232fe44ae81 Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Mon, 23 May 2022 18:55:13 +0400 +Subject: ARM: exynos: Fix refcount leak in exynos_map_pmu + +From: Miaoqian Lin + +commit c4c79525042a4a7df96b73477feaf232fe44ae81 upstream. + +of_find_matching_node() returns a node pointer with refcount +incremented, we should use of_node_put() on it when not need anymore. +Add missing of_node_put() to avoid refcount leak. +of_node_put() checks null pointer. + +Fixes: fce9e5bb2526 ("ARM: EXYNOS: Add support for mapping PMU base address via DT") +Signed-off-by: Miaoqian Lin +Link: https://lore.kernel.org/r/20220523145513.12341-1-linmq006@gmail.com +Signed-off-by: Krzysztof Kozlowski +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/mach-exynos/exynos.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/mach-exynos/exynos.c ++++ b/arch/arm/mach-exynos/exynos.c +@@ -136,6 +136,7 @@ static void exynos_map_pmu(void) + np = of_find_matching_node(NULL, exynos_dt_pmu_match); + if (np) + pmu_base_addr = of_iomap(np, 0); ++ of_node_put(np); + } + + static void __init exynos_init_irq(void) diff --git a/queue-5.4/arm-fix-refcount-leak-in-axxia_boot_secondary.patch b/queue-5.4/arm-fix-refcount-leak-in-axxia_boot_secondary.patch new file mode 100644 index 00000000000..02c195e86aa --- /dev/null +++ b/queue-5.4/arm-fix-refcount-leak-in-axxia_boot_secondary.patch @@ -0,0 +1,32 @@ +From 7c7ff68daa93d8c4cdea482da4f2429c0398fcde Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Wed, 1 Jun 2022 13:05:48 +0400 +Subject: ARM: Fix refcount leak in axxia_boot_secondary + +From: Miaoqian Lin + +commit 7c7ff68daa93d8c4cdea482da4f2429c0398fcde upstream. + +of_find_compatible_node() returns a node pointer with refcount +incremented, we should use of_node_put() on it when done. +Add missing of_node_put() to avoid refcount leak. + +Fixes: 1d22924e1c4e ("ARM: Add platform support for LSI AXM55xx SoC") +Signed-off-by: Miaoqian Lin +Link: https://lore.kernel.org/r/20220601090548.47616-1-linmq006@gmail.com' +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/mach-axxia/platsmp.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/mach-axxia/platsmp.c ++++ b/arch/arm/mach-axxia/platsmp.c +@@ -39,6 +39,7 @@ static int axxia_boot_secondary(unsigned + return -ENOENT; + + syscon = of_iomap(syscon_np, 0); ++ of_node_put(syscon_np); + if (!syscon) + return -ENOMEM; + diff --git a/queue-5.4/kbuild-link-vmlinux-only-once-for-config_trim_unused_ksyms-2nd-attempt.patch b/queue-5.4/kbuild-link-vmlinux-only-once-for-config_trim_unused_ksyms-2nd-attempt.patch new file mode 100644 index 00000000000..6d903b64a5d --- /dev/null +++ b/queue-5.4/kbuild-link-vmlinux-only-once-for-config_trim_unused_ksyms-2nd-attempt.patch @@ -0,0 +1,49 @@ +From 53632ba87d9f302a8d97a11ec2f4f4eec7bb75ea Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Fri, 24 Jun 2022 04:11:47 +0900 +Subject: kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt) + +From: Masahiro Yamada + +commit 53632ba87d9f302a8d97a11ec2f4f4eec7bb75ea upstream. + +If CONFIG_TRIM_UNUSED_KSYMS is enabled and the kernel is built from +a pristine state, the vmlinux is linked twice. + +Commit 3fdc7d3fe4c0 ("kbuild: link vmlinux only once for +CONFIG_TRIM_UNUSED_KSYMS") explains why this happens, but it did not fix +the issue at all. + +Now I realized I had applied a wrong patch. + +In v1 patch [1], the autoksyms_recursive target correctly recurses to +"$(MAKE) -f $(srctree)/Makefile autoksyms_recursive". + +In v2 patch [2], I accidentally dropped the diff line, and it recurses to +"$(MAKE) -f $(srctree)/Makefile vmlinux". + +Restore the code I intended in v1. + +[1]: https://lore.kernel.org/linux-kbuild/1521045861-22418-8-git-send-email-yamada.masahiro@socionext.com/ +[2]: https://lore.kernel.org/linux-kbuild/1521166725-24157-8-git-send-email-yamada.masahiro@socionext.com/ + +Fixes: 3fdc7d3fe4c0 ("kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS") +Signed-off-by: Masahiro Yamada +Tested-by: Sami Tolvanen +Reviewed-by: Nick Desaulniers +Signed-off-by: Greg Kroah-Hartman +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Makefile ++++ b/Makefile +@@ -1073,7 +1073,7 @@ PHONY += autoksyms_recursive + ifdef CONFIG_TRIM_UNUSED_KSYMS + autoksyms_recursive: descend modules.order + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ +- "$(MAKE) -f $(srctree)/Makefile vmlinux" ++ "$(MAKE) -f $(srctree)/Makefile autoksyms_recursive" + endif + + # For the kernel to actually contain only the needed exported symbols, diff --git a/queue-5.4/modpost-fix-section-mismatch-check-for-exported-init-exit-sections.patch b/queue-5.4/modpost-fix-section-mismatch-check-for-exported-init-exit-sections.patch new file mode 100644 index 00000000000..0c2bbe7da6e --- /dev/null +++ b/queue-5.4/modpost-fix-section-mismatch-check-for-exported-init-exit-sections.patch @@ -0,0 +1,37 @@ +From 28438794aba47a27e922857d27b31b74e8559143 Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Sat, 11 Jun 2022 03:32:30 +0900 +Subject: modpost: fix section mismatch check for exported init/exit sections + +From: Masahiro Yamada + +commit 28438794aba47a27e922857d27b31b74e8559143 upstream. + +Since commit f02e8a6596b7 ("module: Sort exported symbols"), +EXPORT_SYMBOL* is placed in the individual section ___ksymtab(_gpl)+ +(3 leading underscores instead of 2). + +Since then, modpost cannot detect the bad combination of EXPORT_SYMBOL +and __init/__exit. + +Fix the .fromsec field. + +Fixes: f02e8a6596b7 ("module: Sort exported symbols") +Signed-off-by: Masahiro Yamada +Reviewed-by: Nick Desaulniers +Signed-off-by: Greg Kroah-Hartman +--- + scripts/mod/modpost.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -1131,7 +1131,7 @@ static const struct sectioncheck section + }, + /* Do not export init/exit functions or data */ + { +- .fromsec = { "__ksymtab*", NULL }, ++ .fromsec = { "___ksymtab*", NULL }, + .bad_tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, + .mismatch = EXPORT_TO_INIT_EXIT, + .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL }, diff --git a/queue-5.4/random-update-comment-from-copy_to_user-copy_to_iter.patch b/queue-5.4/random-update-comment-from-copy_to_user-copy_to_iter.patch new file mode 100644 index 00000000000..b09cdb4caa7 --- /dev/null +++ b/queue-5.4/random-update-comment-from-copy_to_user-copy_to_iter.patch @@ -0,0 +1,30 @@ +From 63b8ea5e4f1a87dea4d3114293fc8e96a8f193d7 Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" +Date: Mon, 20 Jun 2022 11:03:48 +0200 +Subject: random: update comment from copy_to_user() -> copy_to_iter() + +From: Jason A. Donenfeld + +commit 63b8ea5e4f1a87dea4d3114293fc8e96a8f193d7 upstream. + +This comment wasn't updated when we moved from read() to read_iter(), so +this patch makes the trivial fix. + +Fixes: 1b388e7765f2 ("random: convert to using fops->read_iter()") +Signed-off-by: Jason A. Donenfeld +Signed-off-by: Greg Kroah-Hartman +--- + drivers/char/random.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -450,7 +450,7 @@ static ssize_t get_random_bytes_user(str + + /* + * Immediately overwrite the ChaCha key at index 4 with random +- * bytes, in case userspace causes copy_to_user() below to sleep ++ * bytes, in case userspace causes copy_to_iter() below to sleep + * forever, so that we still retain forward secrecy in that case. + */ + crng_make_state(chacha_state, (u8 *)&chacha_state[4], CHACHA_KEY_SIZE); diff --git a/queue-5.4/series b/queue-5.4/series index 709db87b85d..cdea7f30d93 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -49,3 +49,11 @@ parisc-enable-arch_has_strict_module_rwx.patch powerpc-enable-execve-syscall-exit-tracepoint.patch powerpc-rtas-allow-ibm-platform-dump-rtas-call-with-null-buffer-address.patch powerpc-powernv-wire-up-rng-during-setup_arch.patch +arm-dts-imx6qdl-correct-pu-regulator-ramp-delay.patch +arm-exynos-fix-refcount-leak-in-exynos_map_pmu.patch +soc-bcm-brcmstb-pm-pm-arm-fix-refcount-leak-in-brcmstb_pm_probe.patch +arm-fix-refcount-leak-in-axxia_boot_secondary.patch +arm-cns3xxx-fix-refcount-leak-in-cns3xxx_init.patch +modpost-fix-section-mismatch-check-for-exported-init-exit-sections.patch +random-update-comment-from-copy_to_user-copy_to_iter.patch +kbuild-link-vmlinux-only-once-for-config_trim_unused_ksyms-2nd-attempt.patch diff --git a/queue-5.4/soc-bcm-brcmstb-pm-pm-arm-fix-refcount-leak-in-brcmstb_pm_probe.patch b/queue-5.4/soc-bcm-brcmstb-pm-pm-arm-fix-refcount-leak-in-brcmstb_pm_probe.patch new file mode 100644 index 00000000000..426af0225fd --- /dev/null +++ b/queue-5.4/soc-bcm-brcmstb-pm-pm-arm-fix-refcount-leak-in-brcmstb_pm_probe.patch @@ -0,0 +1,37 @@ +From 37d838de369b07b596c19ff3662bf0293fdb09ee Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Thu, 26 May 2022 11:53:22 +0400 +Subject: soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe + +From: Miaoqian Lin + +commit 37d838de369b07b596c19ff3662bf0293fdb09ee upstream. + +of_find_matching_node() returns a node pointer with refcount +incremented, we should use of_node_put() on it when not need anymore. +Add missing of_node_put() to avoid refcount leak. + +In brcmstb_init_sram, it pass dn to of_address_to_resource(), +of_address_to_resource() will call of_find_device_by_node() to take +reference, so we should release the reference returned by +of_find_matching_node(). + +Fixes: 0b741b8234c8 ("soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM)") +Signed-off-by: Miaoqian Lin +Reviewed-by: Andy Shevchenko +Signed-off-by: Florian Fainelli +Signed-off-by: Greg Kroah-Hartman +--- + drivers/soc/bcm/brcmstb/pm/pm-arm.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/soc/bcm/brcmstb/pm/pm-arm.c ++++ b/drivers/soc/bcm/brcmstb/pm/pm-arm.c +@@ -780,6 +780,7 @@ static int brcmstb_pm_probe(struct platf + } + + ret = brcmstb_init_sram(dn); ++ of_node_put(dn); + if (ret) { + pr_err("error setting up SRAM for PM\n"); + return ret;