On Fri, May 22, 2020 at 2:53 PM Dinghao Liu <dinghao.liu@xxxxxxxxxx> wrote: > > pm_runtime_get_sync() increments the runtime PM usage counter even > when it returns an error code. Thus a pairing decrement is needed on > the error handling path to keep the counter balanced. > > Also, call pm_runtime_disable() when pm_runtime_get_sync() returns > an error code. Good catch. Thanks. Reviewed-by: Baolin Wang <baolin.wang7@xxxxxxxxx> > > Signed-off-by: Dinghao Liu <dinghao.liu@xxxxxxxxxx> > --- > drivers/dma/sprd-dma.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c > index 0ef5ca81ba4d..275d83768d0d 100644 > --- a/drivers/dma/sprd-dma.c > +++ b/drivers/dma/sprd-dma.c > @@ -1210,7 +1210,7 @@ static int sprd_dma_probe(struct platform_device *pdev) > ret = dma_async_device_register(&sdev->dma_dev); > if (ret < 0) { > dev_err(&pdev->dev, "register dma device failed:%d\n", ret); > - goto err_register; > + goto err_rpm; > } > > sprd_dma_info.dma_cap = sdev->dma_dev.cap_mask; > @@ -1224,10 +1224,9 @@ static int sprd_dma_probe(struct platform_device *pdev) > > err_of_register: > dma_async_device_unregister(&sdev->dma_dev); > -err_register: > +err_rpm: > pm_runtime_put_noidle(&pdev->dev); > pm_runtime_disable(&pdev->dev); > -err_rpm: > sprd_dma_disable(sdev); > return ret; > } > -- > 2.17.1 > -- Baolin Wang