* [PATCH] usb: typec: anx7411: use devm_pm_runtime_enable()
@ 2026-07-01 11:40 Myeonghun Pak
2026-07-03 13:30 ` Heikki Krogerus
0 siblings, 1 reply; 2+ messages in thread
From: Myeonghun Pak @ 2026-07-01 11:40 UTC (permalink / raw)
To: Heikki Krogerus, Greg Kroah-Hartman
Cc: linux-usb, linux-kernel, stable, Myeonghun Pak, Ijae Kim
anx7411_i2c_probe() enables runtime PM before returning successfully, but
anx7411_i2c_remove() tears down the Type-C partner state, workqueue, dummy
I2C device, mux, switch and port without disabling runtime PM.
Use devm_pm_runtime_enable() so runtime PM is disabled automatically on
driver detach. Since devres action registration can fail, route that
failure through the existing probe unwind path.
This issue was identified during our ongoing static-analysis research while
reviewing kernel code.
Fixes: fe6d8a9c8e64 ("usb: typec: anx7411: Add Analogix PD ANX7411 support")
Cc: stable@vger.kernel.org
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
drivers/usb/typec/anx7411.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/typec/anx7411.c b/drivers/usb/typec/anx7411.c
index 604868ebf422..41df115912b9 100644
--- a/drivers/usb/typec/anx7411.c
+++ b/drivers/usb/typec/anx7411.c
@@ -1537,7 +1537,9 @@ static int anx7411_i2c_probe(struct i2c_client *client)
if (anx7411_typec_check_connection(plat))
dev_err(dev, "check status\n");
- pm_runtime_enable(dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ goto free_wq;
return 0;
--
2.47.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] usb: typec: anx7411: use devm_pm_runtime_enable()
2026-07-01 11:40 [PATCH] usb: typec: anx7411: use devm_pm_runtime_enable() Myeonghun Pak
@ 2026-07-03 13:30 ` Heikki Krogerus
0 siblings, 0 replies; 2+ messages in thread
From: Heikki Krogerus @ 2026-07-03 13:30 UTC (permalink / raw)
To: Myeonghun Pak
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, stable, Ijae Kim
On Wed, Jul 01, 2026 at 08:40:06PM +0900, Myeonghun Pak wrote:
> anx7411_i2c_probe() enables runtime PM before returning successfully, but
> anx7411_i2c_remove() tears down the Type-C partner state, workqueue, dummy
> I2C device, mux, switch and port without disabling runtime PM.
>
> Use devm_pm_runtime_enable() so runtime PM is disabled automatically on
> driver detach. Since devres action registration can fail, route that
> failure through the existing probe unwind path.
>
> This issue was identified during our ongoing static-analysis research while
> reviewing kernel code.
>
> Fixes: fe6d8a9c8e64 ("usb: typec: anx7411: Add Analogix PD ANX7411 support")
> Cc: stable@vger.kernel.org
> Co-developed-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/anx7411.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/anx7411.c b/drivers/usb/typec/anx7411.c
> index 604868ebf422..41df115912b9 100644
> --- a/drivers/usb/typec/anx7411.c
> +++ b/drivers/usb/typec/anx7411.c
> @@ -1537,7 +1537,9 @@ static int anx7411_i2c_probe(struct i2c_client *client)
> if (anx7411_typec_check_connection(plat))
> dev_err(dev, "check status\n");
>
> - pm_runtime_enable(dev);
> + ret = devm_pm_runtime_enable(dev);
> + if (ret)
> + goto free_wq;
>
> return 0;
>
> --
> 2.47.1
--
heikki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-03 13:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 11:40 [PATCH] usb: typec: anx7411: use devm_pm_runtime_enable() Myeonghun Pak
2026-07-03 13:30 ` Heikki Krogerus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox