]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Jul 2026 13:11:42 +0000 (15:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Jul 2026 13:11:42 +0000 (15:11 +0200)
added patches:
usb-musb-omap2430-clean-up-probe-error-handling.patch
usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch

queue-6.12/series
queue-6.12/usb-musb-omap2430-clean-up-probe-error-handling.patch [new file with mode: 0644]
queue-6.12/usb-musb-omap2430-do-not-put-borrowed-of_node-in-probe.patch [new file with mode: 0644]

index 475426b4c716d6bcdd675ea49f8a11a806287f6f..d763a57224eb255ce1ad645ba36957e6104bea7a 100644 (file)
@@ -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 (file)
index 0000000..fab16da
--- /dev/null
@@ -0,0 +1,99 @@
+From 51d4b0a44c82e5eff056ef76acd2c3c605a8eb74 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Thu, 24 Jul 2025 11:19:10 +0200
+Subject: usb: musb: omap2430: clean up probe error handling
+
+From: Johan Hovold <johan@kernel.org>
+
+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 <johan@kernel.org>
+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 <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..e09083a
--- /dev/null
@@ -0,0 +1,50 @@
+From c947360ae63eee1c9eacc030dd6f5a53f717addf Mon Sep 17 00:00:00 2001
+From: Guangshuo Li <lgs201920130244@gmail.com>
+Date: Mon, 13 Jul 2026 19:47:11 +0800
+Subject: usb: musb: omap2430: Do not put borrowed of_node in probe
+
+From: Guangshuo Li <lgs201920130244@gmail.com>
+
+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 <stable@kernel.org>
+Reviewed-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
+Link: https://patch.msgid.link/20260713114711.955253-1-lgs201920130244@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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;