RE: [PATCH] HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during teardown

"Xu, Even" <[email protected]> Mon, 10 Aug 2026 00:53:34 +0000
Newsgroups org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <IA1PR11MB60985BDE3A634ED205A72CD4F4DE2@IA1PR11MB6098.namprd11.prod.outlook.com>

> -----Original Message-----
> From: Guangshuo Li <[email protected]>
> Sent: Saturday, August 8, 2026 11:18 PM
> To: Xu, Even <[email protected]>; Sun, Xinpeng <[email protected]>; Jiri
> Kosina <[email protected]>; Benjamin Tissoires <[email protected]>; Sakari Ailus
> <[email protected]>; Danny D. <[email protected]>; Guangshuo
> Li <[email protected]>; Abhishek Tamboli
> <[email protected]>; Mark Pearson <[email protected]>;
> Srinivas Pandruvada <[email protected]>; linux-
> [email protected]; [email protected]
> Cc: [email protected]
> Subject: [PATCH] HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during
> teardown
> 
> quickspi_probe() calls pm_runtime_use_autosuspend(), but
> quickspi_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: 6912aaf3fd24 ("HID: intel-thc-hid: intel-quickspi: Add PM implementation")
> Cc: [email protected]
> Signed-off-by: Guangshuo Li <[email protected]>
> ---
>  drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> index 4ae2e1718b30..3c87519aca84 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> @@ -713,6 +713,7 @@ static void quickspi_remove(struct pci_dev *pdev)
>  	quickspi_hid_remove(qsdev);
>  	quickspi_dma_deinit(qsdev);
> 
> +	pm_runtime_dont_use_autosuspend(qsdev->dev);

Reviewed-by: Even Xu <[email protected]>

>  	pm_runtime_get_noresume(qsdev->dev);
> 
>  	quickspi_dev_deinit(qsdev);
> --
> 2.43.0