From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> To: Jonathan Cameron <Jonathan.Cameron@Huawei.com> Cc: <linuxarm@huawei.com>, <mauro.chehab@huawei.com>, "Paul J. Murphy" <paul.j.murphy@intel.com>, Daniele Alessandrelli <daniele.alessandrelli@intel.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, <linux-kernel@vger.kernel.org>, <linux-media@vger.kernel.org>, Dan Carpenter <dan.carpenter@oracle.com> Subject: Re: [PATCH 06/25] media: i2c: imx334: fix the pm runtime get logic Date: Wed, 5 May 2021 13:24:26 +0200 [thread overview] Message-ID: <20210505132426.201e9262@coco.lan> (raw) In-Reply-To: <20210505121040.00002094@Huawei.com> Em Wed, 5 May 2021 12:10:40 +0100 Jonathan Cameron <Jonathan.Cameron@Huawei.com> escreveu: > On Wed, 5 May 2021 11:41:56 +0200 > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote: > > > The PM runtime get logic is currently broken, as it checks if > > ret is zero instead of checking if it is an error code, > > as reported by Dan Carpenter. > > > > While here, use the pm_runtime_resume_and_get() as added by: > > commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") > > added pm_runtime_resume_and_get() in order to automatically handle > > dev->power.usage_count decrement on errors. As a bonus, such function > > always return zero on success. > > > > It should also be noticed that a fail of pm_runtime_get_sync() would > > potentially result in a spurious runtime_suspend(), instead of > > using pm_runtime_put_noidle(). > > Irony here is that pm_runtime_resume_and_get() returns <= 0 so with that > function change, you can stick with if (ret) and still be correct. > > So only one of the two changes is needed to fix the bug. Yeah, I noticed ;-) On media, almost all devices have I2C bus(es), and I2C send/receive functions return positive values. So, a good practice is to check for errors with: if (ret < 0) That's why I opted to keep both changes here ;-) Regards, Mauro > > J > > > > Reported-by: Dan Carpenter <dan.carpenter@oracle.com> > > Reviewed-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com> > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > > --- > > drivers/media/i2c/imx334.c | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c > > index 047aa7658d21..23f28606e570 100644 > > --- a/drivers/media/i2c/imx334.c > > +++ b/drivers/media/i2c/imx334.c > > @@ -717,9 +717,9 @@ static int imx334_set_stream(struct v4l2_subdev *sd, int enable) > > } > > > > if (enable) { > > - ret = pm_runtime_get_sync(imx334->dev); > > - if (ret) > > - goto error_power_off; > > + ret = pm_runtime_resume_and_get(imx334->dev); > > + if (ret < 0) > > + goto error_unlock; > > > > ret = imx334_start_streaming(imx334); > > if (ret) > > @@ -737,6 +737,7 @@ static int imx334_set_stream(struct v4l2_subdev *sd, int enable) > > > > error_power_off: > > pm_runtime_put(imx334->dev); > > +error_unlock: > > mutex_unlock(&imx334->mutex); > > > > return ret; > Thanks, Mauro
next prev parent reply other threads:[~2021-05-05 11:24 UTC|newest] Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 9:41 [PATCH 00/25] Fix some PM runtime issues at the media subsystem Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` [PATCH 01/25] staging: media: rkvdec: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:23 ` Jonathan Cameron 2021-05-05 12:23 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 02/25] staging: media: imx7-mipi-csis: " Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 11:06 ` Jonathan Cameron 2021-05-05 11:06 ` Jonathan Cameron 2021-05-05 11:17 ` Mauro Carvalho Chehab 2021-05-05 11:17 ` Mauro Carvalho Chehab 2021-05-05 13:56 ` Rui Miguel Silva 2021-05-05 13:56 ` Rui Miguel Silva 2021-05-05 14:23 ` Mauro Carvalho Chehab 2021-05-05 14:23 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` [PATCH 03/25] media: venus: Rework error fail recover logic Mauro Carvalho Chehab 2021-05-05 11:05 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 04/25] media: s5p_cec: decrement usage count if disabled Mauro Carvalho Chehab 2021-05-05 12:24 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 05/25] media: i2c: ccs-core: return the right error code at suspend Mauro Carvalho Chehab 2021-05-05 12:24 ` Jonathan Cameron 2021-05-05 12:51 ` Sakari Ailus 2021-05-05 9:41 ` [PATCH 06/25] media: i2c: imx334: fix the pm runtime get logic Mauro Carvalho Chehab 2021-05-05 11:10 ` Jonathan Cameron 2021-05-05 11:24 ` Mauro Carvalho Chehab [this message] 2021-05-05 12:26 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 07/25] media: exynos-gsc: don't resume at remove time Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:27 ` Jonathan Cameron 2021-05-05 12:27 ` Jonathan Cameron 2021-05-05 9:41 ` [PATCH 08/25] media: atmel: properly get pm_runtime Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 12:08 ` Jonathan Cameron 2021-05-05 12:08 ` Jonathan Cameron 2021-06-10 9:04 ` Eugen.Hristev 2021-06-10 9:04 ` Eugen.Hristev 2021-06-10 9:38 ` Mauro Carvalho Chehab 2021-06-10 9:38 ` Mauro Carvalho Chehab 2021-06-10 12:00 ` Eugen.Hristev 2021-06-10 12:00 ` Eugen.Hristev 2021-06-16 8:03 ` Mauro Carvalho Chehab 2021-06-16 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:03 ` Mauro Carvalho Chehab 2021-09-06 8:13 ` Eugen.Hristev 2021-09-06 8:13 ` Eugen.Hristev 2021-09-13 10:26 ` Eugen.Hristev 2021-09-13 10:26 ` Eugen.Hristev 2021-05-05 9:41 ` [PATCH 09/25] media: hantro: do a PM resume earlier Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 9:41 ` Mauro Carvalho Chehab 2021-05-05 11:34 ` Jonathan Cameron 2021-05-05 11:34 ` Jonathan Cameron 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:22 ` Ezequiel Garcia 2021-05-05 13:46 ` Mauro Carvalho Chehab 2021-05-05 13:46 ` Mauro Carvalho Chehab 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:01 ` Ezequiel Garcia 2021-05-05 14:15 ` Mauro Carvalho Chehab 2021-05-05 14:15 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 10/25] media: marvel-ccic: fix some issues when getting pm_runtime Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 11/25] media: mdk-mdp: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 12/25] media: rcar_fdp1: simplify error check logic at fdp_open() Mauro Carvalho Chehab 2021-05-05 9:48 ` Sergei Shtylyov 2021-05-05 9:42 ` [PATCH 13/25] media: rcar_fdp1: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 12:31 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 14/25] media: renesas-ceu: Properly check for PM errors Mauro Carvalho Chehab 2021-05-05 9:56 ` Jacopo Mondi 2021-05-05 9:42 ` [PATCH 15/25] media: s5p: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 12:31 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 16/25] media: am437x: " Mauro Carvalho Chehab 2021-05-05 12:32 ` Jonathan Cameron 2021-05-08 13:01 ` Lad, Prabhakar 2021-05-05 9:42 ` [PATCH 17/25] media: sh_vou: " Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 18/25] media: mtk-vcodec: fix PM runtime get logic Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 12:32 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 19/25] media: s5p-jpeg: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 20/25] media: sti/delta: use pm_runtime_resume_and_get() Mauro Carvalho Chehab 2021-05-05 12:01 ` Jonathan Cameron 2021-05-05 12:33 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 21/25] media: sunxi: fix pm_runtime_get_sync() usage count Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 9:42 ` [PATCH 22/25] media: sti/bdisp: " Mauro Carvalho Chehab 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 23/25] media: exynos4-is: " Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:20 ` Jonathan Cameron 2021-05-05 12:20 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 24/25] media: exynos-gsc: " Mauro Carvalho Chehab 2021-05-05 9:42 ` Mauro Carvalho Chehab 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 12:34 ` Jonathan Cameron 2021-05-05 9:42 ` [PATCH 25/25] media: i2c: ccs-core: " Mauro Carvalho Chehab 2021-05-05 10:34 ` Sakari Ailus 2021-05-05 10:57 ` Mauro Carvalho Chehab 2021-05-05 10:58 ` Mauro Carvalho Chehab 2021-05-05 12:35 ` Jonathan Cameron 2021-05-05 14:06 ` Mauro Carvalho Chehab 2021-05-05 16:36 ` Jonathan Cameron 2021-05-05 11:02 ` Sakari Ailus 2021-05-06 15:11 ` [PATCH 00/25] Fix some PM runtime issues at the media subsystem Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab 2021-05-06 15:11 ` Mauro Carvalho Chehab
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=20210505132426.201e9262@coco.lan \ --to=mchehab+huawei@kernel.org \ --cc=Jonathan.Cameron@Huawei.com \ --cc=dan.carpenter@oracle.com \ --cc=daniele.alessandrelli@intel.com \ --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 \ --cc=paul.j.murphy@intel.com \ --subject='Re: [PATCH 06/25] media: i2c: imx334: fix the pm runtime get logic' \ /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
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.