linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: unlisted-recipients:; (no To-header on input)
Cc: linuxarm@huawei.com, mauro.chehab@huawei.com,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org
Subject: [PATCH v3 15/79] media: sh_vou: fix pm_runtime_get_sync() usage count
Date: Tue, 27 Apr 2021 12:26:05 +0200	[thread overview]
Message-ID: <3d2ef55f0ca6f4f58804b402d0d1bf176bcf9791.1619519080.git.mchehab+huawei@kernel.org> (raw)
In-Reply-To: <cover.1619519080.git.mchehab+huawei@kernel.org>

The pm_runtime_get_sync() internally increments the
dev->power.usage_count without decrementing it, even on errors.
Replace it by the new pm_runtime_resume_and_get(), introduced by:
commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter")
in order to properly decrement the usage counter and avoid memory
leaks.

While here, check if the PM runtime error was caught at open time.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 drivers/media/platform/sh_vou.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c
index 4ac48441f22c..ca4310e26c49 100644
--- a/drivers/media/platform/sh_vou.c
+++ b/drivers/media/platform/sh_vou.c
@@ -1133,7 +1133,11 @@ static int sh_vou_open(struct file *file)
 	if (v4l2_fh_is_singular_file(file) &&
 	    vou_dev->status == SH_VOU_INITIALISING) {
 		/* First open */
-		pm_runtime_get_sync(vou_dev->v4l2_dev.dev);
+		err = pm_runtime_resume_and_get(vou_dev->v4l2_dev.dev);
+		if (err < 0) {
+			v4l2_fh_release(file);
+			goto done_open;
+		}
 		err = sh_vou_hw_init(vou_dev);
 		if (err < 0) {
 			pm_runtime_put(vou_dev->v4l2_dev.dev);
-- 
2.30.2


  parent reply	other threads:[~2021-04-27 10:27 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-27 10:25 [PATCH v3 00/79] Address some issues with PM runtime at media subsystem Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 01/79] media: venus: fix PM runtime logic at venus_sys_error_handler() Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 02/79] media: i2c: ccs-core: return the right error code at suspend Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 03/79] media: i2c: mt9m001: don't resume at remove time Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 04/79] media: i2c: ov7740: " Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 05/79] media: i2c: video-i2c: " Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 06/79] media: exynos-gsc: " Mauro Carvalho Chehab
2021-04-27 11:21   ` Sylwester Nawrocki
2021-04-27 10:25 ` [PATCH v3 07/79] media: atmel: properly get pm_runtime Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 08/79] media: marvel-ccic: fix some issues when getting pm_runtime Mauro Carvalho Chehab
2021-04-27 10:25 ` [PATCH v3 09/79] media: mdk-mdp: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 10/79] media: rcar_fdp1: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 11/79] media: rga-buf: use pm_runtime_resume_and_get() Mauro Carvalho Chehab
2021-04-28 17:10   ` Ezequiel Garcia
2021-04-27 10:26 ` [PATCH v3 12/79] media: renesas-ceu: Properly check for PM errors Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 13/79] media: s5p: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab
2021-04-27 10:36   ` Marek Szyprowski
2021-04-27 10:51   ` Sylwester Nawrocki
2021-04-28  7:41     ` Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 14/79] media: am437x: " Mauro Carvalho Chehab
2021-04-27 10:26 ` Mauro Carvalho Chehab [this message]
2021-04-27 10:26 ` [PATCH v3 16/79] media: mtk-vcodec: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 17/79] media: s5p-jpeg: " Mauro Carvalho Chehab
2021-04-27 12:36   ` Andrzej Pietrasiewicz
2021-04-27 10:26 ` [PATCH v3 18/79] media: delta-v4l2: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 19/79] media: sun8i_rotate: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 20/79] staging: media: rkvdec: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 21/79] staging: media: atomisp_fops: use pm_runtime_resume_and_get() Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 22/79] staging: media: imx7-mipi-csis: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 23/79] staging: media: ipu3: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 24/79] staging: media: cedrus_video: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 25/79] staging: media: vde: " Mauro Carvalho Chehab
2021-04-27 11:47   ` Dmitry Osipenko
2021-04-28  7:20     ` Mauro Carvalho Chehab
2021-04-28  8:05       ` Dmitry Osipenko
2021-04-27 10:26 ` [PATCH v3 26/79] staging: media: csi: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 27/79] staging: media: vi: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 28/79] media: i2c: ak7375: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 29/79] media: i2c: ccs-core: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 30/79] media: i2c: dw9714: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 31/79] media: i2c: dw9768: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 32/79] media: i2c: dw9807-vcm: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 33/79] media: i2c: hi556: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 34/79] media: i2c: imx214: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 35/79] media: i2c: imx219: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 36/79] media: i2c: imx258: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 37/79] media: i2c: imx274: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 38/79] media: i2c: imx290: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 39/79] media: i2c: imx319: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 40/79] media: i2c: imx334: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 41/79] media: i2c: imx355: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 42/79] media: i2c: mt9m001: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 43/79] media: i2c: ov02a10: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 44/79] media: i2c: ov13858: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 45/79] media: i2c: ov2659: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 46/79] media: i2c: ov2685: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 47/79] media: i2c: ov2740: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 48/79] media: i2c: ov5647: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 49/79] media: i2c: ov5648: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 50/79] media: i2c: ov5670: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 51/79] media: i2c: ov5675: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 52/79] media: i2c: ov5695: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 53/79] media: i2c: ov7740: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 54/79] media: i2c: ov8856: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 55/79] media: i2c: ov8865: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 56/79] media: i2c: ov9734: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 57/79] media: i2c: tvp5150: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 58/79] media: i2c: video-i2c: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 59/79] media: sti/hva: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 60/79] media: ipu3: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 61/79] media: coda: " Mauro Carvalho Chehab
2021-04-27 10:54   ` Philipp Zabel
2021-04-27 10:26 ` [PATCH v3 62/79] media: exynos4-is: " Mauro Carvalho Chehab
2021-04-27 10:45   ` Sylwester Nawrocki
2021-04-27 10:26 ` [PATCH v3 63/79] media: exynos-gsc: " Mauro Carvalho Chehab
2021-04-27 10:47   ` Sylwester Nawrocki
2021-04-27 10:26 ` [PATCH v3 64/79] media: mtk-jpeg: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 65/79] media: camss: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 66/79] media: venus: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 67/79] media: venus: vdec: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 68/79] media: venus: venc: " Mauro Carvalho Chehab
2021-04-27 10:26 ` [PATCH v3 69/79] media: rcar-fcp: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 70/79] media: rkisp1: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 71/79] media: s3c-camif: " Mauro Carvalho Chehab
2021-04-27 10:59   ` Sylwester Nawrocki
2021-04-27 10:27 ` [PATCH v3 72/79] media: s5p-mfc: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 73/79] media: bdisp-v4l2: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 74/79] media: stm32: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 75/79] media: sunxi: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 76/79] media: ti-vpe: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 77/79] media: vsp1: " Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 78/79] media: rcar-vin: " Mauro Carvalho Chehab
2021-04-27 10:34   ` Geert Uytterhoeven
2021-04-27 20:12   ` Niklas Söderlund
2021-04-28  6:16     ` Mauro Carvalho Chehab
2021-04-27 10:27 ` [PATCH v3 79/79] media: hantro: document the usage of pm_runtime_get_sync() Mauro Carvalho Chehab
2021-04-27 15:08   ` Robin Murphy
2021-04-27 15:18     ` Ezequiel Garcia
2021-04-28  6:27       ` Mauro Carvalho Chehab
2021-04-28  6:44         ` Mauro Carvalho Chehab
2021-04-28 14:14           ` Ezequiel Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d2ef55f0ca6f4f58804b402d0d1bf176bcf9791.1619519080.git.mchehab+huawei@kernel.org \
    --to=mchehab+huawei@kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=gustavoars@kernel.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=mauro.chehab@huawei.com \
    --cc=mchehab@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).