2024-01-26 22:38:59

by Sean Anderson

[permalink] [raw]
Subject: [PATCH] usb: ulpi: Fix debugfs directory leak

The ULPI per-device debugfs root is named after the ulpi device's
parent, but ulpi_unregister_interface tries to remove a debugfs
directory named after the ulpi device itself. This results in the
directory sticking around and preventing subsequent (deferred) probes
from succeeding. Change the directory name to match the ulpi device.

Fixes: bd0a0a024f2a ("usb: ulpi: Add debugfs support")
Cc: [email protected]
Signed-off-by: Sean Anderson <[email protected]>
---

drivers/usb/common/ulpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index 84d91b1c1eed..0886b19d2e1c 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -301,7 +301,7 @@ static int ulpi_register(struct device *dev, struct ulpi *ulpi)
return ret;
}

- root = debugfs_create_dir(dev_name(dev), ulpi_root);
+ root = debugfs_create_dir(dev_name(&ulpi->dev), ulpi_root);
debugfs_create_file("regs", 0444, root, ulpi, &ulpi_regs_fops);

dev_dbg(&ulpi->dev, "registered ULPI PHY: vendor %04x, product %04x\n",
--
2.35.1.1320.gc452695387.dirty



2024-01-30 15:35:37

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH] usb: ulpi: Fix debugfs directory leak

On Fri, Jan 26, 2024 at 05:38:00PM -0500, Sean Anderson wrote:
> The ULPI per-device debugfs root is named after the ulpi device's
> parent, but ulpi_unregister_interface tries to remove a debugfs
> directory named after the ulpi device itself. This results in the
> directory sticking around and preventing subsequent (deferred) probes
> from succeeding. Change the directory name to match the ulpi device.
>
> Fixes: bd0a0a024f2a ("usb: ulpi: Add debugfs support")
> Cc: [email protected]
> Signed-off-by: Sean Anderson <[email protected]>

Acked-by: Heikki Krogerus <[email protected]>

> ---
>
> drivers/usb/common/ulpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
> index 84d91b1c1eed..0886b19d2e1c 100644
> --- a/drivers/usb/common/ulpi.c
> +++ b/drivers/usb/common/ulpi.c
> @@ -301,7 +301,7 @@ static int ulpi_register(struct device *dev, struct ulpi *ulpi)
> return ret;
> }
>
> - root = debugfs_create_dir(dev_name(dev), ulpi_root);
> + root = debugfs_create_dir(dev_name(&ulpi->dev), ulpi_root);
> debugfs_create_file("regs", 0444, root, ulpi, &ulpi_regs_fops);
>
> dev_dbg(&ulpi->dev, "registered ULPI PHY: vendor %04x, product %04x\n",
> --
> 2.35.1.1320.gc452695387.dirty

--
heikki