]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Wed, 7 Apr 2021 05:46:06 +0000 (07:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 May 2021 06:37:27 +0000 (08:37 +0200)
[ Upstream commit f1995d5e43cf897f63b4d7a7f84a252d891ae820 ]

pm_runtime_get_sync() will increase the runtime PM counter
even it returns an error. Thus a pairing decrement is needed
to prevent refcount leak. Fix this by replacing this API with
pm_runtime_resume_and_get(), which will not change the runtime
PM counter on error.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c

index ed863bf5ea804943372e4287c9bb5c9961c7e1e4..671e4a928993dbe4bdc4bb4eca03853ceb7cb43d 100644 (file)
@@ -589,7 +589,7 @@ static int deinterlace_start_streaming(struct vb2_queue *vq, unsigned int count)
        int ret;
 
        if (V4L2_TYPE_IS_OUTPUT(vq->type)) {
-               ret = pm_runtime_get_sync(dev);
+               ret = pm_runtime_resume_and_get(dev);
                if (ret < 0) {
                        dev_err(dev, "Failed to enable module\n");