diff options
| author | Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> | 2026-09-02 20:24:04 +0530 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-09-10 17:08:07 +0200 |
| commit | 3d9bbf0ffeb9b7ac1b6ad06b52e037870a7e0c63 (patch) | |
| tree | 4a7990c3cab51f3b633f019184e61fce00ea903e /tools/lib/python/kdoc/python_version.py | |
| parent | aebbc7d63407f843a1c74806041792db65d69a51 (diff) | |
| download | linux-next-3d9bbf0ffeb9b7ac1b6ad06b52e037870a7e0c63.tar.gz linux-next-3d9bbf0ffeb9b7ac1b6ad06b52e037870a7e0c63.zip | |
usb: dwc3: am62: Fix runtime PM usage count leak on probe error path
dwc3_ti_probe() takes a runtime PM reference with pm_runtime_get_noresume()
before creating the dwc3 core child device, and releases it with
pm_runtime_put_autosuspend() once probe has succeeded. The err_pm_disable
error path only disables runtime PM, so the reference taken a few lines
earlier is never dropped.
The usage counter lives in struct device and is not reset when the driver
is unbound, so the leaked reference outlives the failed probe. If the
device is probed again, through a manual rebind or a module reload, the
counter starts at one instead of zero and the pm_runtime_put_autosuspend()
on the success path can no longer bring it back down. The wrapper then
stays runtime resumed for good and autosuspend never kicks in.
Drop the reference before disabling runtime PM, matching the ordering
already used in dwc3_ti_remove().
Fixes: e8784c0aec03 ("drivers: usb: dwc3: Add AM62 USB wrapper driver")
Cc: stable <stable@kernel.org>
Assisted-by: Claude:claude-opus-5
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://patch.msgid.link/20260902-dwc3-am62-rpm-fix-v1-1-7a2807e33307@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
