mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
HID: intel-thc-hid: intel-quicki2c: fix autosuspend cleanup during teardown
quicki2c_probe() calls pm_runtime_use_autosuspend(), but
quicki2c_remove() does not call the matching
pm_runtime_dont_use_autosuspend() during teardown.
If the autosuspend delay is set to a negative value while autosuspend
is enabled, the runtime PM core increments usage_count to prevent
runtime suspend. Without calling pm_runtime_dont_use_autosuspend()
during teardown, this reference is not dropped.
The documentation for pm_runtime_use_autosuspend() also notes that it
is important to undo it with pm_runtime_dont_use_autosuspend() at
driver exit time, unless runtime PM was initially enabled with
devm_pm_runtime_enable().
Add the missing pm_runtime_dont_use_autosuspend() call to the driver
remove path.
This issue was found by manual code inspection.
Fixes: 5f420e8215 ("HID: intel-thc-hid: intel-quicki2c: Add PM implementation")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Even Xu <even.xu@intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
This commit is contained in:
parent
c92693f3ed
commit
42a941e394
|
|
@ -774,6 +774,7 @@ static void quicki2c_remove(struct pci_dev *pdev)
|
|||
quicki2c_hid_remove(qcdev);
|
||||
quicki2c_dma_deinit(qcdev);
|
||||
|
||||
pm_runtime_dont_use_autosuspend(qcdev->dev);
|
||||
pm_runtime_get_noresume(qcdev->dev);
|
||||
|
||||
quicki2c_dev_deinit(qcdev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user