From: Greg Kroah-Hartman Date: Tue, 10 Mar 2026 07:44:14 +0000 (+0100) Subject: fix up memory patch in 5.10 X-Git-Tag: v6.19.7~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=353732f9aaecd55b55d22bfd2c8e77626df1e2e7;p=thirdparty%2Fkernel%2Fstable-queue.git fix up memory patch in 5.10 --- diff --git a/queue-5.10/memory-mtk-smi-add-device-link-between-smi-larb-and-.patch b/queue-5.10/memory-mtk-smi-add-device-link-between-smi-larb-and-.patch deleted file mode 100644 index 9c7e9a6fdb..0000000000 --- a/queue-5.10/memory-mtk-smi-add-device-link-between-smi-larb-and-.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 0dbe5b9a4bf2518ea5b40ca4358008e9eb3ab67b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sat, 10 Apr 2021 17:11:16 +0800 -Subject: memory: mtk-smi: Add device-link between smi-larb and smi-common - -From: Yong Wu - -[ Upstream commit 6ce2c05b21189eb17b3aa26720cc5841acf9dce8 ] - -Normally, If the smi-larb HW need work, we should enable the smi-common -HW power and clock firstly. -This patch adds device-link between the smi-larb dev and the smi-common -dev. then If pm_runtime_get_sync(smi-larb-dev), the pm_runtime_get_sync -(smi-common-dev) will be called automatically. - -Also, Add DL_FLAG_STATELESS to avoid the smi-common clocks be gated when -probe. - -CC: Matthias Brugger -Suggested-by: Tomasz Figa -Signed-off-by: Yong Wu -Signed-off-by: Krzysztof Kozlowski -Link: https://lore.kernel.org/r/20210410091128.31823-5-yong.wu@mediatek.com -Stable-dep-of: 9dae65913b32 ("memory: mtk-smi: fix device leak on larb probe") -Signed-off-by: Sasha Levin ---- - drivers/memory/mtk-smi.c | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) - -diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c -index 75f8e0f60d81d..101e61e956d8d 100644 ---- a/drivers/memory/mtk-smi.c -+++ b/drivers/memory/mtk-smi.c -@@ -303,6 +303,7 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) - struct device *dev = &pdev->dev; - struct device_node *smi_node; - struct platform_device *smi_pdev; -+ struct device_link *link; - - larb = devm_kzalloc(dev, sizeof(*larb), GFP_KERNEL); - if (!larb) -@@ -342,6 +343,12 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) - if (!platform_get_drvdata(smi_pdev)) - return -EPROBE_DEFER; - larb->smi_common_dev = &smi_pdev->dev; -+ link = device_link_add(dev, larb->smi_common_dev, -+ DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS); -+ if (!link) { -+ dev_err(dev, "Unable to link smi-common dev\n"); -+ return -ENODEV; -+ } - } else { - dev_err(dev, "Failed to get the smi_common device\n"); - return -EINVAL; -@@ -354,6 +361,9 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) - - static int mtk_smi_larb_remove(struct platform_device *pdev) - { -+ struct mtk_smi_larb *larb = platform_get_drvdata(pdev); -+ -+ device_link_remove(&pdev->dev, larb->smi_common_dev); - pm_runtime_disable(&pdev->dev); - component_del(&pdev->dev, &mtk_smi_larb_component_ops); - return 0; -@@ -365,17 +375,9 @@ static int __maybe_unused mtk_smi_larb_resume(struct device *dev) - const struct mtk_smi_larb_gen *larb_gen = larb->larb_gen; - int ret; - -- /* Power on smi-common. */ -- ret = pm_runtime_resume_and_get(larb->smi_common_dev); -- if (ret < 0) { -- dev_err(dev, "Failed to pm get for smi-common(%d).\n", ret); -- return ret; -- } -- - ret = mtk_smi_clk_enable(&larb->smi); - if (ret < 0) { - dev_err(dev, "Failed to enable clock(%d).\n", ret); -- pm_runtime_put_sync(larb->smi_common_dev); - return ret; - } - -@@ -390,7 +392,6 @@ static int __maybe_unused mtk_smi_larb_suspend(struct device *dev) - struct mtk_smi_larb *larb = dev_get_drvdata(dev); - - mtk_smi_clk_disable(&larb->smi); -- pm_runtime_put_sync(larb->smi_common_dev); - return 0; - } - --- -2.51.0 - diff --git a/queue-5.10/memory-mtk-smi-convert-to-platform-remove-callback-r.patch b/queue-5.10/memory-mtk-smi-convert-to-platform-remove-callback-r.patch deleted file mode 100644 index 490a9b52dd..0000000000 --- a/queue-5.10/memory-mtk-smi-convert-to-platform-remove-callback-r.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 8b9c6784a72995f98acffac86591f3446e977c82 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sun, 17 Dec 2023 15:29:33 +0100 -Subject: memory: mtk-smi: Convert to platform remove callback returning void -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 08c1aeaa45ce0fd18912e92c6705586c8aa5240f ] - -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 ignored (apart -from emitting a warning) 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. Eventually after all drivers -are converted, .remove_new() will be renamed to .remove(). - -Trivially convert this driver from always returning zero in the remove -callback to the void returning variant. - -Signed-off-by: Uwe Kleine-König -Link: https://lore.kernel.org/r/5c35a33cfdc359842e034ddd2e9358f10e91fa1f.1702822744.git.u.kleine-koenig@pengutronix.de -Signed-off-by: Krzysztof Kozlowski -Stable-dep-of: 9dae65913b32 ("memory: mtk-smi: fix device leak on larb probe") -Signed-off-by: Sasha Levin ---- - drivers/memory/mtk-smi.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c -index 101e61e956d8d..a04775e675f1b 100644 ---- a/drivers/memory/mtk-smi.c -+++ b/drivers/memory/mtk-smi.c -@@ -359,14 +359,13 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) - return component_add(dev, &mtk_smi_larb_component_ops); - } - --static int mtk_smi_larb_remove(struct platform_device *pdev) -+static void mtk_smi_larb_remove(struct platform_device *pdev) - { - struct mtk_smi_larb *larb = platform_get_drvdata(pdev); - - device_link_remove(&pdev->dev, larb->smi_common_dev); - pm_runtime_disable(&pdev->dev); - component_del(&pdev->dev, &mtk_smi_larb_component_ops); -- return 0; - } - - static int __maybe_unused mtk_smi_larb_resume(struct device *dev) -@@ -403,7 +402,7 @@ static const struct dev_pm_ops smi_larb_pm_ops = { - - static struct platform_driver mtk_smi_larb_driver = { - .probe = mtk_smi_larb_probe, -- .remove = mtk_smi_larb_remove, -+ .remove_new = mtk_smi_larb_remove, - .driver = { - .name = "mtk-smi-larb", - .of_match_table = mtk_smi_larb_of_ids, -@@ -522,10 +521,9 @@ static int mtk_smi_common_probe(struct platform_device *pdev) - return 0; - } - --static int mtk_smi_common_remove(struct platform_device *pdev) -+static void mtk_smi_common_remove(struct platform_device *pdev) - { - pm_runtime_disable(&pdev->dev); -- return 0; - } - - static int __maybe_unused mtk_smi_common_resume(struct device *dev) -@@ -561,7 +559,7 @@ static const struct dev_pm_ops smi_common_pm_ops = { - - static struct platform_driver mtk_smi_common_driver = { - .probe = mtk_smi_common_probe, -- .remove = mtk_smi_common_remove, -+ .remove_new = mtk_smi_common_remove, - .driver = { - .name = "mtk-smi-common", - .of_match_table = mtk_smi_common_of_ids, --- -2.51.0 - diff --git a/queue-5.10/memory-mtk-smi-fix-device-leak-on-larb-probe.patch b/queue-5.10/memory-mtk-smi-fix-device-leak-on-larb-probe.patch index b8882296c1..5b4b5065e7 100644 --- a/queue-5.10/memory-mtk-smi-fix-device-leak-on-larb-probe.patch +++ b/queue-5.10/memory-mtk-smi-fix-device-leak-on-larb-probe.patch @@ -22,21 +22,16 @@ Link: https://patch.msgid.link/20251121164624.13685-3-johan@kernel.org Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sasha Levin --- - drivers/memory/mtk-smi.c | 1 + + drivers/memory/mtk-smi.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c -index a04775e675f1b..2c06b9900ea04 100644 --- a/drivers/memory/mtk-smi.c +++ b/drivers/memory/mtk-smi.c -@@ -366,6 +366,7 @@ static void mtk_smi_larb_remove(struct platform_device *pdev) - device_link_remove(&pdev->dev, larb->smi_common_dev); +@@ -356,6 +356,7 @@ static int mtk_smi_larb_remove(struct pl + { pm_runtime_disable(&pdev->dev); component_del(&pdev->dev, &mtk_smi_larb_component_ops); + put_device(larb->smi_common_dev); + return 0; } - static int __maybe_unused mtk_smi_larb_resume(struct device *dev) --- -2.51.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 16a9283f32..b89accab48 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -4,8 +4,6 @@ scsi-lpfc-properly-set-wc-for-dpp-mapping.patch scsi-ufs-core-move-link-recovery-for-hibern8-exit-fa.patch alsa-usb-audio-cap-the-packet-size-pre-calculations.patch btrfs-fix-incorrect-key-offset-in-error-message-in-c.patch -memory-mtk-smi-add-device-link-between-smi-larb-and-.patch -memory-mtk-smi-convert-to-platform-remove-callback-r.patch memory-mtk-smi-fix-device-leak-on-larb-probe.patch arm-omap2-add-missing-of_node_put-before-break-and-r.patch arm-omap2-fix-reference-count-leaks-in-omap_control_.patch