From 4f00ee52b2e42fa7d5be13a6e71f09123be8a2dd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 16 Jan 2026 12:09:06 +0100 Subject: [PATCH] some 5.15 queue fixes --- ...tform-remove-callback-returning-void.patch | 64 --------- ...-stm32-sai-fix-of-node-leak-on-probe.patch | 6 +- ...-without-casefold-feature-cannot-be-.patch | 47 ------ ...essage-when-rejecting-the-default-ha.patch | 52 ------- ...eference-count-leak-in-imx_gpc_probe.patch | 48 ------- .../pmdomain-use-device_get_match_data.patch | 134 ------------------ queue-5.15/series | 5 - 7 files changed, 3 insertions(+), 353 deletions(-) delete mode 100644 queue-5.15/asoc-stm-stm32_sai_sub-convert-to-platform-remove-callback-returning-void.patch delete mode 100644 queue-5.15/ext4-filesystems-without-casefold-feature-cannot-be-.patch delete mode 100644 queue-5.15/ext4-fix-error-message-when-rejecting-the-default-ha.patch delete mode 100644 queue-5.15/pmdomain-imx-fix-reference-count-leak-in-imx_gpc_probe.patch delete mode 100644 queue-5.15/pmdomain-use-device_get_match_data.patch diff --git a/queue-5.15/asoc-stm-stm32_sai_sub-convert-to-platform-remove-callback-returning-void.patch b/queue-5.15/asoc-stm-stm32_sai_sub-convert-to-platform-remove-callback-returning-void.patch deleted file mode 100644 index 280006972c..0000000000 --- a/queue-5.15/asoc-stm-stm32_sai_sub-convert-to-platform-remove-callback-returning-void.patch +++ /dev/null @@ -1,64 +0,0 @@ -From stable+bounces-204830-greg=kroah.com@vger.kernel.org Mon Jan 5 16:12:47 2026 -From: Sasha Levin -Date: Mon, 5 Jan 2026 10:10:29 -0500 -Subject: ASoC: stm: stm32_sai_sub: Convert to platform remove callback returning void -To: stable@vger.kernel.org -Cc: "Uwe Kleine-König" , "Takashi Iwai" , "Nicolas Ferre" , "Mark Brown" , "Sasha Levin" -Message-ID: <20260105151034.2625317-2-sashal@kernel.org> - -From: Uwe Kleine-König - -[ Upstream commit a3bd37e2e2bce4fb1757a940fa985d556662ba80 ] - -The .remove() callback for a platform driver returns an int which makes -many driver authors wrongly assume it's possible to do error handling by -returning an error code. However the value returned is (mostly) ignored -and this typically results in resource leaks. To improve here there is a -quest to make the remove callback return void. In the first step of this -quest all drivers are converted to .remove_new() which already returns -void. - -Trivially convert this driver from always returning zero in the remove -callback to the void returning variant. - -Signed-off-by: Uwe Kleine-König -Acked-by: Takashi Iwai -Acked-by: Nicolas Ferre -Link: https://lore.kernel.org/r/20230315150745.67084-139-u.kleine-koenig@pengutronix.de -Signed-off-by: Mark Brown -Stable-dep-of: 23261f0de094 ("ASoC: stm32: sai: fix OF node leak on probe") -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - sound/soc/stm/stm32_sai_sub.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - ---- a/sound/soc/stm/stm32_sai_sub.c -+++ b/sound/soc/stm/stm32_sai_sub.c -@@ -1571,7 +1571,7 @@ err_unprepare_pclk: - return ret; - } - --static int stm32_sai_sub_remove(struct platform_device *pdev) -+static void stm32_sai_sub_remove(struct platform_device *pdev) - { - struct stm32_sai_sub_data *sai = dev_get_drvdata(&pdev->dev); - -@@ -1579,8 +1579,6 @@ static int stm32_sai_sub_remove(struct p - snd_dmaengine_pcm_unregister(&pdev->dev); - snd_soc_unregister_component(&pdev->dev); - pm_runtime_disable(&pdev->dev); -- -- return 0; - } - - #ifdef CONFIG_PM_SLEEP -@@ -1630,7 +1628,7 @@ static struct platform_driver stm32_sai_ - .pm = &stm32_sai_sub_pm_ops, - }, - .probe = stm32_sai_sub_probe, -- .remove = stm32_sai_sub_remove, -+ .remove_new = stm32_sai_sub_remove, - }; - - module_platform_driver(stm32_sai_sub_driver); diff --git a/queue-5.15/asoc-stm32-sai-fix-of-node-leak-on-probe.patch b/queue-5.15/asoc-stm32-sai-fix-of-node-leak-on-probe.patch index 89cad6e2c0..1a5cb1269f 100644 --- a/queue-5.15/asoc-stm32-sai-fix-of-node-leak-on-probe.patch +++ b/queue-5.15/asoc-stm32-sai-fix-of-node-leak-on-probe.patch @@ -139,11 +139,11 @@ Signed-off-by: Greg Kroah-Hartman return ret; } -@@ -1579,6 +1587,7 @@ static void stm32_sai_sub_remove(struct +@@ -1579,6 +1587,7 @@ static int stm32_sai_sub_remove(struct p snd_dmaengine_pcm_unregister(&pdev->dev); snd_soc_unregister_component(&pdev->dev); pm_runtime_disable(&pdev->dev); + of_node_put(sai->np_sync_provider); - } - #ifdef CONFIG_PM_SLEEP + return 0; + } diff --git a/queue-5.15/ext4-filesystems-without-casefold-feature-cannot-be-.patch b/queue-5.15/ext4-filesystems-without-casefold-feature-cannot-be-.patch deleted file mode 100644 index a5de5a6076..0000000000 --- a/queue-5.15/ext4-filesystems-without-casefold-feature-cannot-be-.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 44f1290be6aeebfa5fb3d43b884f81ce8f2752ab Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Jan 2026 12:04:27 -0300 -Subject: ext4: filesystems without casefold feature cannot be mounted with - siphash - -From: Lizhi Xu - -commit 985b67cd86392310d9e9326de941c22fc9340eec upstream. - -When mounting the ext4 filesystem, if the default hash version is set to -DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting. - -Reported-by: syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com -Signed-off-by: Lizhi Xu -Link: https://patch.msgid.link/20240605012335.44086-1-lizhi.xu@windriver.com -Signed-off-by: Theodore Ts'o -[cascardo: small conflict fixup] -Signed-off-by: Thadeu Lima de Souza Cascardo -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - fs/ext4/super.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 05f1f9b7ad0c4..7780d8755ed8f 100644 ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -3191,6 +3191,14 @@ int ext4_feature_set_ok(struct super_block *sb, int readonly) - } - #endif - -+ if (EXT4_SB(sb)->s_es->s_def_hash_version == DX_HASH_SIPHASH && -+ !ext4_has_feature_casefold(sb)) { -+ ext4_msg(sb, KERN_ERR, -+ "Filesystem without casefold feature cannot be " -+ "mounted with siphash"); -+ return 0; -+ } -+ - if (readonly) - return 1; - --- -2.51.0 - diff --git a/queue-5.15/ext4-fix-error-message-when-rejecting-the-default-ha.patch b/queue-5.15/ext4-fix-error-message-when-rejecting-the-default-ha.patch deleted file mode 100644 index cb32af6c83..0000000000 --- a/queue-5.15/ext4-fix-error-message-when-rejecting-the-default-ha.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 8907bf29100bd8831558d83b7020c4e49aee0b4a Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Jan 2026 12:04:29 -0300 -Subject: ext4: fix error message when rejecting the default hash - -From: Gabriel Krisman Bertazi - -commit a2187431c395cdfbf144e3536f25468c64fc7cfa upstream. - -Commit 985b67cd8639 ("ext4: filesystems without casefold feature cannot -be mounted with siphash") properly rejects volumes where -s_def_hash_version is set to DX_HASH_SIPHASH, but the check and the -error message should not look into casefold setup - a filesystem should -never have DX_HASH_SIPHASH as the default hash. Fix it and, since we -are there, move the check to ext4_hash_info_init. - -Fixes:985b67cd8639 ("ext4: filesystems without casefold feature cannot -be mounted with siphash") - -Signed-off-by: Gabriel Krisman Bertazi -Link: https://patch.msgid.link/87jzg1en6j.fsf_-_@mailhost.krisman.be -Signed-off-by: Theodore Ts'o -[cascardo: conflicts due to other parts of ext4_fill_super having been factored out] -Signed-off-by: Thadeu Lima de Souza Cascardo -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - fs/ext4/super.c | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 7780d8755ed8f..05f1f9b7ad0c4 100644 ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -3191,14 +3191,6 @@ int ext4_feature_set_ok(struct super_block *sb, int readonly) - } - #endif - -- if (EXT4_SB(sb)->s_es->s_def_hash_version == DX_HASH_SIPHASH && -- !ext4_has_feature_casefold(sb)) { -- ext4_msg(sb, KERN_ERR, -- "Filesystem without casefold feature cannot be " -- "mounted with siphash"); -- return 0; -- } -- - if (readonly) - return 1; - --- -2.51.0 - diff --git a/queue-5.15/pmdomain-imx-fix-reference-count-leak-in-imx_gpc_probe.patch b/queue-5.15/pmdomain-imx-fix-reference-count-leak-in-imx_gpc_probe.patch deleted file mode 100644 index 46d35fdf7c..0000000000 --- a/queue-5.15/pmdomain-imx-fix-reference-count-leak-in-imx_gpc_probe.patch +++ /dev/null @@ -1,48 +0,0 @@ -From stable+bounces-206021-greg=kroah.com@vger.kernel.org Tue Jan 6 19:16:37 2026 -From: Sasha Levin -Date: Tue, 6 Jan 2026 13:10:16 -0500 -Subject: pmdomain: imx: Fix reference count leak in imx_gpc_probe() -To: stable@vger.kernel.org -Cc: Wentao Liang , Frank Li , Ulf Hansson , Sasha Levin -Message-ID: <20260106181021.3109327-3-sashal@kernel.org> - -From: Wentao Liang - -[ Upstream commit 73cb5f6eafb0ac7aea8cdeb8ff12981aa741d8fb ] - -of_get_child_by_name() returns a node pointer with refcount incremented. -Use the __free() attribute to manage the pgc_node reference, ensuring -automatic of_node_put() cleanup when pgc_node goes out of scope. - -This eliminates the need for explicit error handling paths and avoids -reference count leaks. - -Fixes: 721cabf6c660 ("soc: imx: move PGC handling to a new GPC driver") -Cc: stable@vger.kernel.org -Signed-off-by: Wentao Liang -Reviewed-by: Frank Li -Signed-off-by: Ulf Hansson -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/soc/imx/gpc.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - ---- a/drivers/soc/imx/gpc.c -+++ b/drivers/soc/imx/gpc.c -@@ -405,13 +405,12 @@ clk_err: - static int imx_gpc_probe(struct platform_device *pdev) - { - const struct imx_gpc_dt_data *of_id_data = device_get_match_data(&pdev->dev); -- struct device_node *pgc_node; -+ struct device_node *pgc_node __free(device_node) -+ = of_get_child_by_name(pdev->dev.of_node, "pgc"); - struct regmap *regmap; - void __iomem *base; - int ret; - -- pgc_node = of_get_child_by_name(pdev->dev.of_node, "pgc"); -- - /* bail out if DT too old and doesn't provide the necessary info */ - if (!of_property_read_bool(pdev->dev.of_node, "#power-domain-cells") && - !pgc_node) diff --git a/queue-5.15/pmdomain-use-device_get_match_data.patch b/queue-5.15/pmdomain-use-device_get_match_data.patch deleted file mode 100644 index 36eb29ba5e..0000000000 --- a/queue-5.15/pmdomain-use-device_get_match_data.patch +++ /dev/null @@ -1,134 +0,0 @@ -From stable+bounces-206020-greg=kroah.com@vger.kernel.org Tue Jan 6 20:05:19 2026 -From: Sasha Levin -Date: Tue, 6 Jan 2026 13:10:15 -0500 -Subject: pmdomain: Use device_get_match_data() -To: stable@vger.kernel.org -Cc: Rob Herring , Ulf Hansson , Sasha Levin -Message-ID: <20260106181021.3109327-2-sashal@kernel.org> - -From: Rob Herring - -[ Upstream commit 3ba9fdfaa550936837b50b73d6c27ac401fde875 ] - -Use preferred device_get_match_data() instead of of_match_device() to -get the driver match data. With this, adjust the includes to explicitly -include the correct headers. - -Signed-off-by: Rob Herring -Link: https://lore.kernel.org/r/20231006224614.444488-1-robh@kernel.org -Signed-off-by: Ulf Hansson -Stable-dep-of: 73cb5f6eafb0 ("pmdomain: imx: Fix reference count leak in imx_gpc_probe()") -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/soc/actions/owl-sps.c | 16 +++++----------- - drivers/soc/imx/gpc.c | 7 +++---- - drivers/soc/rockchip/pm_domains.c | 13 ++++--------- - 3 files changed, 12 insertions(+), 24 deletions(-) - ---- a/drivers/soc/actions/owl-sps.c -+++ b/drivers/soc/actions/owl-sps.c -@@ -8,8 +8,10 @@ - * Copyright (c) 2017 Andreas Färber - */ - -+#include - #include --#include -+#include -+#include - #include - #include - #include -@@ -96,24 +98,16 @@ static int owl_sps_init_domain(struct ow - - static int owl_sps_probe(struct platform_device *pdev) - { -- const struct of_device_id *match; - const struct owl_sps_info *sps_info; - struct owl_sps *sps; - int i, ret; - -- if (!pdev->dev.of_node) { -- dev_err(&pdev->dev, "no device node\n"); -- return -ENODEV; -- } -- -- match = of_match_device(pdev->dev.driver->of_match_table, &pdev->dev); -- if (!match || !match->data) { -+ sps_info = device_get_match_data(&pdev->dev); -+ if (!sps_info) { - dev_err(&pdev->dev, "unknown compatible or missing data\n"); - return -EINVAL; - } - -- sps_info = match->data; -- - sps = devm_kzalloc(&pdev->dev, - struct_size(sps, domains, sps_info->num_domains), - GFP_KERNEL); ---- a/drivers/soc/imx/gpc.c -+++ b/drivers/soc/imx/gpc.c -@@ -7,9 +7,10 @@ - #include - #include - #include --#include -+#include - #include - #include -+#include - #include - #include - -@@ -403,9 +404,7 @@ clk_err: - - static int imx_gpc_probe(struct platform_device *pdev) - { -- const struct of_device_id *of_id = -- of_match_device(imx_gpc_dt_ids, &pdev->dev); -- const struct imx_gpc_dt_data *of_id_data = of_id->data; -+ const struct imx_gpc_dt_data *of_id_data = device_get_match_data(&pdev->dev); - struct device_node *pgc_node; - struct regmap *regmap; - void __iomem *base; ---- a/drivers/soc/rockchip/pm_domains.c -+++ b/drivers/soc/rockchip/pm_domains.c -@@ -8,11 +8,13 @@ - #include - #include - #include -+#include - #include - #include -+#include -+#include - #include - #include --#include - #include - #include - #include -@@ -634,7 +636,6 @@ static int rockchip_pm_domain_probe(stru - struct device_node *node; - struct device *parent; - struct rockchip_pmu *pmu; -- const struct of_device_id *match; - const struct rockchip_pmu_info *pmu_info; - int error; - -@@ -643,13 +644,7 @@ static int rockchip_pm_domain_probe(stru - return -ENODEV; - } - -- match = of_match_device(dev->driver->of_match_table, dev); -- if (!match || !match->data) { -- dev_err(dev, "missing pmu data\n"); -- return -EINVAL; -- } -- -- pmu_info = match->data; -+ pmu_info = device_get_match_data(dev); - - pmu = devm_kzalloc(dev, - struct_size(pmu, domains, pmu_info->num_domains), diff --git a/queue-5.15/series b/queue-5.15/series index 49ca25df9e..a2258ae4f4 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -471,10 +471,7 @@ mm-balloon_compaction-make-balloon-page-compaction-callbacks-static.patch mm-balloon_compaction-we-cannot-have-isolated-pages-in-the-balloon-list.patch mm-balloon_compaction-convert-balloon_page_delete-to-balloon_page_finalize.patch powerpc-pseries-cmm-adjust-balloon_migrate-when-migrating-pages.patch -pmdomain-use-device_get_match_data.patch -pmdomain-imx-fix-reference-count-leak-in-imx_gpc_probe.patch lockd-fix-vfs_test_lock-calls.patch -asoc-stm-stm32_sai_sub-convert-to-platform-remove-callback-returning-void.patch asoc-stm32-sai-fix-of-node-leak-on-probe.patch wifi-mac80211-discard-beacon-frames-to-non-broadcast-address.patch drm-gma500-remove-unused-helper-psb_fbdev_fb_setcolreg.patch @@ -513,8 +510,6 @@ ext4-introduce-itail-helper.patch ext4-fix-out-of-bound-read-in-ext4_xattr_inode_dec_ref_all.patch net-add-locking-to-protect-skb-dev-access-in-ip_output.patch tls-use-__sk_dst_get-and-dst_dev_rcu-in-get_netdev_for_sock.patch -ext4-filesystems-without-casefold-feature-cannot-be-.patch -ext4-fix-error-message-when-rejecting-the-default-ha.patch csky-fix-csky_cmpxchg_fixup-not-working.patch arm-9461-1-disable-highpte-on-preempt_rt-kernels.patch alpha-don-t-reference-obsolete-termio-struct-for-tc-.patch -- 2.47.3