FAILED: patch "[PATCH] usb: musb: omap2430: Do not put borrowed of_node in probe" failed to apply to 6.1-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x c947360ae63eee1c9eacc030dd6f5a53f717addf
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026072753-efficient-culpable-80d7@gregkh' --subject-prefix 'PATCH 6.1.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From c947360ae63eee1c9eacc030dd6f5a53f717addf Mon Sep 17 00:00:00 2001
From: Guangshuo Li <[email protected]>
Date: Mon, 13 Jul 2026 19:47:11 +0800
Subject: [PATCH] usb: musb: omap2430: Do not put borrowed of_node in probe
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.
drivers/usb/musb/omap2430.c +0 -2
@@ -454,7 +454,6 @@ static int omap2430_probe(struct platform_device *pdev)dev_err (&pdev->dev,"failed to register musb device\n" ); goto err_disable_rpm; } -of_node_put (np);return 0 ;
@@ -464,7 +463,6 @@ static int omap2430_probe(struct platform_device *pdev)if (!IS_ERR (glue->control_otghs))put_device (glue->control_otghs); err_put_musb: -of_node_put (np);platform_device_put (musb);return ret;
Sasha Levin
maintainerPATCH 1/2 usb: musb: omap2430: clean up probe error handling
From: Johan Hovold <[email protected]>
[ Upstream commit 51d4b0a44c82e5eff056ef76acd2c3c605a8eb74 ]
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.
Stable-dep-of: c947360ae63e ("usb: musb: omap2430: Do not put borrowed of_node in probe")
--- drivers/usb/musb/omap2430.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-)
drivers/usb/musb/omap2430.c +10 -13
@@ -318,13 +318,11 @@ static int omap2430_probe(struct platform_device *pdev) 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 platform_device *pdev) 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 platform_device *pdev)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 platform_device *pdev) 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; }
Signature · 1 line
2.53.0
Sasha Levin
maintainerPATCH 2/2 usb: musb: omap2430: Do not put borrowed of_node in probe
From: Guangshuo Li <[email protected]>
[ Upstream commit c947360ae63eee1c9eacc030dd6f5a53f717addf ]
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.
--- drivers/usb/musb/omap2430.c | 2 -- 1 file changed, 2 deletions(-)
drivers/usb/musb/omap2430.c +0 -2
@@ -455,7 +455,6 @@ static int omap2430_probe(struct platform_device *pdev)dev_err (&pdev->dev,"failed to register musb device\n" ); goto err_disable_rpm; } -of_node_put (np);return 0 ;
@@ -465,7 +464,6 @@ static int omap2430_probe(struct platform_device *pdev)if (!IS_ERR (glue->control_otghs))put_device (glue->control_otghs); err_put_musb: -of_node_put (np);platform_device_put (musb);return ret;
Signature · 1 line
2.53.0