From: Greg Kroah-Hartman Date: Thu, 30 Jul 2026 13:11:42 +0000 (+0200) Subject: 6.12-stable patches X-Git-Tag: v6.6.148~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8611875b682871d718138521b0dd28f3da72fa4;p=thirdparty%2Fkernel%2Fstable-queue.git 6.12-stable patches added patches: usb-musb-omap2430-clean-up-probe-error-handling.patch usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch --- diff --git a/queue-6.12/series b/queue-6.12/series index 475426b4c7..d763a57224 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -582,3 +582,5 @@ afs-fix-dynamic-lookup-to-fail-on-cell-lookup-failure.patch afs-fix-lack-of-locking-around-modifications-of-net-cells_dyn_ino.patch usb-gadget-use-str_enable_disable-like-helpers.patch usb-gadget-fsl-udc-fix-dev_printk-device.patch +usb-musb-omap2430-clean-up-probe-error-handling.patch +usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch diff --git a/queue-6.12/usb-musb-omap2430-clean-up-probe-error-handling.patch b/queue-6.12/usb-musb-omap2430-clean-up-probe-error-handling.patch new file mode 100644 index 0000000000..fab16da1bc --- /dev/null +++ b/queue-6.12/usb-musb-omap2430-clean-up-probe-error-handling.patch @@ -0,0 +1,99 @@ +From 51d4b0a44c82e5eff056ef76acd2c3c605a8eb74 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 24 Jul 2025 11:19:10 +0200 +Subject: usb: musb: omap2430: clean up probe error handling + +From: Johan Hovold + +commit 51d4b0a44c82e5eff056ef76acd2c3c605a8eb74 upstream. + +Using numbered error labels is discouraged (e.g. as it requires +renumbering them when adding a new intermediate error path). + +Rename the error labels after what they do. + +While at it, drop the redundant platform allocation failure dev_err() +as the error would already have been logged by the allocator. + +Signed-off-by: Johan Hovold +Link: https://lore.kernel.org/r/20250724091910.21092-6-johan@kernel.org +Stable-dep-of: c947360ae63e ("usb: musb: omap2430: Do not put borrowed of_node in probe") +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/musb/omap2430.c | 23 ++++++++++------------- + 1 file changed, 10 insertions(+), 13 deletions(-) + +--- a/drivers/usb/musb/omap2430.c ++++ b/drivers/usb/musb/omap2430.c +@@ -318,13 +318,11 @@ static int omap2430_probe(struct platfor + + glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL); + if (!glue) +- goto err0; ++ return -ENOMEM; + + musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO); +- if (!musb) { +- dev_err(&pdev->dev, "failed to allocate musb device\n"); +- goto err0; +- } ++ if (!musb) ++ return -ENOMEM; + + musb->dev.parent = &pdev->dev; + musb->dev.dma_mask = &omap2430_dmamask; +@@ -348,15 +346,15 @@ static int omap2430_probe(struct platfor + + pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) +- goto err2; ++ goto err_put_musb; + + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); + if (!data) +- goto err2; ++ goto err_put_musb; + + config = devm_kzalloc(&pdev->dev, sizeof(*config), GFP_KERNEL); + if (!config) +- goto err2; ++ goto err_put_musb; + + of_property_read_u32(np, "mode", (u32 *)&pdata->mode); + of_property_read_u32(np, "interface-type", +@@ -379,7 +377,7 @@ static int omap2430_probe(struct platfor + if (!control_pdev) { + dev_err(&pdev->dev, "Failed to get control device\n"); + ret = -EINVAL; +- goto err2; ++ goto err_put_musb; + } + glue->control_otghs = &control_pdev->dev; + } +@@ -455,22 +453,21 @@ static int omap2430_probe(struct platfor + ret = platform_device_add(musb); + if (ret) { + dev_err(&pdev->dev, "failed to register musb device\n"); +- goto err3; ++ goto err_disable_rpm; + } + of_node_put(np); + + return 0; + +-err3: ++err_disable_rpm: + pm_runtime_disable(glue->dev); + err_put_control_otghs: + if (!IS_ERR(glue->control_otghs)) + put_device(glue->control_otghs); +-err2: ++err_put_musb: + of_node_put(np); + platform_device_put(musb); + +-err0: + return ret; + } + diff --git a/queue-6.12/usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch b/queue-6.12/usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch new file mode 100644 index 0000000000..e09083aa9c --- /dev/null +++ b/queue-6.12/usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch @@ -0,0 +1,50 @@ +From c947360ae63eee1c9eacc030dd6f5a53f717addf Mon Sep 17 00:00:00 2001 +From: Guangshuo Li +Date: Mon, 13 Jul 2026 19:47:11 +0800 +Subject: usb: musb: omap2430: Do not put borrowed of_node in probe + +From: Guangshuo Li + +commit c947360ae63eee1c9eacc030dd6f5a53f717addf upstream. + +omap2430_probe() stores pdev->dev.of_node in a local np variable. This is +a borrowed pointer and the probe function does not take a reference to +it. + +The success and error paths nevertheless call of_node_put(np). This drops +a reference that is owned by the platform device, and can leave +pdev->dev.of_node with an unbalanced reference count. + +Do not put the borrowed platform device node from omap2430_probe(). +References taken for the child MUSB device are handled by the device core, +and the ctrl-module phandle reference is still released separately. + +Fixes: ffbe2feac59b ("usb: musb: omap2430: Fix probe regression for missing resources") +Cc: stable +Reviewed-by: Johan Hovold +Signed-off-by: Guangshuo Li +Link: https://patch.msgid.link/20260713114711.955253-1-lgs201920130244@gmail.com +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/musb/omap2430.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/drivers/usb/musb/omap2430.c ++++ b/drivers/usb/musb/omap2430.c +@@ -455,7 +455,6 @@ static int omap2430_probe(struct platfor + dev_err(&pdev->dev, "failed to register musb device\n"); + goto err_disable_rpm; + } +- of_node_put(np); + + return 0; + +@@ -465,7 +464,6 @@ err_put_control_otghs: + if (!IS_ERR(glue->control_otghs)) + put_device(glue->control_otghs); + err_put_musb: +- of_node_put(np); + platform_device_put(musb); + + return ret;