All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: rcar-vin: Fix a reference count leak.
@ 2020-06-13 22:30 wu000273
  2020-06-16  2:13 ` Laurent Pinchart
  0 siblings, 1 reply; 3+ messages in thread
From: wu000273 @ 2020-06-13 22:30 UTC (permalink / raw)
  To: kjlu
  Cc: wu000273, Niklas Söderlund, Mauro Carvalho Chehab,
	Laurent Pinchart, Hans Verkuil, linux-media, linux-renesas-soc,
	linux-kernel

From: Qiushi Wu <wu000273@umn.edu>

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code. Thus call pm_runtime_put_noidle()
if pm_runtime_get_sync() fails.

Fixes: 90dedce9bc54 ("media: rcar-vin: add function to manipulate Gen3 chsel value")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
---
 drivers/media/platform/rcar-vin/rcar-dma.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index 1a30cd036371..95bc9e0e8792 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -1392,8 +1392,10 @@ int rvin_set_channel_routing(struct rvin_dev *vin, u8 chsel)
 	int ret;
 
 	ret = pm_runtime_get_sync(vin->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(vin->dev);
 		return ret;
+	}
 
 	/* Make register writes take effect immediately. */
 	vnmc = rvin_read(vin, VNMC_REG);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] media: rcar-vin: Fix a reference count leak.
  2020-06-13 22:30 [PATCH] media: rcar-vin: Fix a reference count leak wu000273
@ 2020-06-16  2:13 ` Laurent Pinchart
  0 siblings, 0 replies; 3+ messages in thread
From: Laurent Pinchart @ 2020-06-16  2:13 UTC (permalink / raw)
  To: wu000273
  Cc: kjlu, Niklas Söderlund, Mauro Carvalho Chehab, Hans Verkuil,
	linux-media, linux-renesas-soc, linux-kernel

Hi Qiushi,

Thank you for the patch.

On Sat, Jun 13, 2020 at 05:30:08PM -0500, wu000273@umn.edu wrote:
> From: Qiushi Wu <wu000273@umn.edu>
> 
> pm_runtime_get_sync() increments the runtime PM usage counter even
> when it returns an error code. Thus call pm_runtime_put_noidle()
> if pm_runtime_get_sync() fails.
> 
> Fixes: 90dedce9bc54 ("media: rcar-vin: add function to manipulate Gen3 chsel value")
> Signed-off-by: Qiushi Wu <wu000273@umn.edu>

This should be squashed with the other patch that you have sent for the
driver, with the exact same subject line. This being said, as commented
on your similar patch for the vsp1 driver, I'd rather see the problem
being fixed inside pm_runtime_get_sync().

> ---
>  drivers/media/platform/rcar-vin/rcar-dma.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
> index 1a30cd036371..95bc9e0e8792 100644
> --- a/drivers/media/platform/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/rcar-vin/rcar-dma.c
> @@ -1392,8 +1392,10 @@ int rvin_set_channel_routing(struct rvin_dev *vin, u8 chsel)
>  	int ret;
>  
>  	ret = pm_runtime_get_sync(vin->dev);
> -	if (ret < 0)
> +	if (ret < 0) {
> +		pm_runtime_put_noidle(vin->dev);
>  		return ret;
> +	}
>  
>  	/* Make register writes take effect immediately. */
>  	vnmc = rvin_read(vin, VNMC_REG);

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] media: rcar-vin: Fix a reference count leak.
@ 2020-06-13 23:04 wu000273
  0 siblings, 0 replies; 3+ messages in thread
From: wu000273 @ 2020-06-13 23:04 UTC (permalink / raw)
  To: kjlu
  Cc: wu000273, Niklas Söderlund, Mauro Carvalho Chehab,
	Hans Verkuil, Ulrich Hecht, Laurent Pinchart, linux-media,
	linux-renesas-soc, linux-kernel

From: Qiushi Wu <wu000273@umn.edu>

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code. Thus call pm_runtime_put_noidle()
if pm_runtime_get_sync() fails.

Fixes: 2a18fbec1dab ("media: rcar-vin: Move pm_runtime_{get,put} out of helpers")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
---
 drivers/media/platform/rcar-vin/rcar-v4l2.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index f421e2584875..06808be35f98 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -835,8 +835,10 @@ static int rvin_open(struct file *file)
 	int ret;
 
 	ret = pm_runtime_get_sync(vin->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(vin->dev);
 		return ret;
+	}
 
 	ret = mutex_lock_interruptible(&vin->lock);
 	if (ret)
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-16  2:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-13 22:30 [PATCH] media: rcar-vin: Fix a reference count leak wu000273
2020-06-16  2:13 ` Laurent Pinchart
2020-06-13 23:04 wu000273

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.