]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: typec: anx7411: use devm_pm_runtime_enable()
authorMyeonghun Pak <mhun512@gmail.com>
Wed, 1 Jul 2026 11:40:06 +0000 (20:40 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Jul 2026 11:34:06 +0000 (13:34 +0200)
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 <stable@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>
Link: https://patch.msgid.link/20260701114006.75738-1-mhun512@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/anx7411.c

index 604868ebf4221ffb727bbe9466b49c0580a7beec..41df115912b93f5146595d5316710e37b93721fc 100644 (file)
@@ -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;