2021-04-08 08:21:37

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe

When hmm_pool_register() fails, a pairing PM usage counter
increment is needed to keep the counter balanced. It's the
same for the following error paths.

Signed-off-by: Dinghao Liu <[email protected]>
---
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
index 0295e2e32d79..02f774ed80c8 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
@@ -1815,6 +1815,7 @@ static int atomisp_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
hmm_cleanup();
hmm_pool_unregister(HMM_POOL_TYPE_RESERVED);
hmm_pool_fail:
+ pm_runtime_get_noresume(&pdev->dev);
destroy_workqueue(isp->wdt_work_queue);
wdt_work_queue_fail:
atomisp_acc_cleanup(isp);
--
2.17.1


2021-04-08 09:52:22

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH] media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe

On Thu, Apr 8, 2021 at 11:19 AM Dinghao Liu <[email protected]> wrote:
>
> When hmm_pool_register() fails, a pairing PM usage counter
> increment is needed to keep the counter balanced. It's the
> same for the following error paths.

Acked-by: Andy Shevchenko <[email protected]>

> Signed-off-by: Dinghao Liu <[email protected]>
> ---
> drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
> index 0295e2e32d79..02f774ed80c8 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
> @@ -1815,6 +1815,7 @@ static int atomisp_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
> hmm_cleanup();
> hmm_pool_unregister(HMM_POOL_TYPE_RESERVED);
> hmm_pool_fail:
> + pm_runtime_get_noresume(&pdev->dev);
> destroy_workqueue(isp->wdt_work_queue);
> wdt_work_queue_fail:
> atomisp_acc_cleanup(isp);
> --
> 2.17.1
>


--
With Best Regards,
Andy Shevchenko