* [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error
@ 2020-05-21 6:27 Dinghao Liu
[not found] ` <20200521062746.6656-1-dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Dinghao Liu @ 2020-05-21 6:27 UTC (permalink / raw)
To: dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A, kjlu-OJFnDUYgAso
Cc: Dmitry Osipenko, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Thierry Reding, Jonathan Hunter,
linux-media-u79uwXL29TY76Z2rM5mHXA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA,
devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
pm_runtime_get_sync() increments the runtime PM usage counter even
the call returns an error code. Thus a pairing decrement is needed
on the error handling path to keep the counter balanced.
Signed-off-by: Dinghao Liu <dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org>
---
Changelog:
v2: - Remove unused label 'unlock'
---
drivers/staging/media/tegra-vde/vde.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/staging/media/tegra-vde/vde.c b/drivers/staging/media/tegra-vde/vde.c
index d3e63512a765..3fdf2cd0b99e 100644
--- a/drivers/staging/media/tegra-vde/vde.c
+++ b/drivers/staging/media/tegra-vde/vde.c
@@ -777,7 +777,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde,
ret = pm_runtime_get_sync(dev);
if (ret < 0)
- goto unlock;
+ goto put_runtime_pm;
/*
* We rely on the VDE registers reset value, otherwise VDE
@@ -843,8 +843,6 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde,
put_runtime_pm:
pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
-
-unlock:
mutex_unlock(&vde->lock);
release_dpb_frames:
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread[parent not found: <20200521062746.6656-1-dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org>]
* Re: [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error [not found] ` <20200521062746.6656-1-dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org> @ 2020-05-21 11:21 ` Dan Carpenter 2020-05-21 11:42 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A 0 siblings, 1 reply; 5+ messages in thread From: Dan Carpenter @ 2020-05-21 11:21 UTC (permalink / raw) To: Dinghao Liu Cc: kjlu-OJFnDUYgAso, devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b, Greg Kroah-Hartman, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Jonathan Hunter, Thierry Reding, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Dmitry Osipenko, Mauro Carvalho Chehab, linux-media-u79uwXL29TY76Z2rM5mHXA On Thu, May 21, 2020 at 02:27:45PM +0800, Dinghao Liu wrote: > pm_runtime_get_sync() increments the runtime PM usage counter even > the call returns an error code. Thus a pairing decrement is needed > on the error handling path to keep the counter balanced. > > Signed-off-by: Dinghao Liu <dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org> Let's stop working around the bug in pm_runtime_get_sync() and write a replacement for it instead. regards, dan carpenter ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error 2020-05-21 11:21 ` Dan Carpenter @ 2020-05-21 11:42 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A 2020-05-21 12:03 ` Dan Carpenter 0 siblings, 1 reply; 5+ messages in thread From: dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A @ 2020-05-21 11:42 UTC (permalink / raw) To: Dan Carpenter Cc: kjlu-OJFnDUYgAso, devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b, Greg Kroah-Hartman, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Jonathan Hunter, Thierry Reding, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Dmitry Osipenko, Mauro Carvalho Chehab, linux-media-u79uwXL29TY76Z2rM5mHXA We need to make sure if pm_runtime_get_sync() is designed with such behavior before modifying it. I received a response from Rafael when I commited a similar patch: https://lkml.org/lkml/2020/5/20/1100 It seems that this behavior is intentional and needs to be kept. Regards, Dinghao "Dan Carpenter" <dan.carpenter@oracle.com>写道: > On Thu, May 21, 2020 at 02:27:45PM +0800, Dinghao Liu wrote: > > pm_runtime_get_sync() increments the runtime PM usage counter even > > the call returns an error code. Thus a pairing decrement is needed > > on the error handling path to keep the counter balanced. > > > > Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> > > Let's stop working around the bug in pm_runtime_get_sync() and write > a replacement for it instead. > > regards, > dan carpenter ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error 2020-05-21 11:42 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A @ 2020-05-21 12:03 ` Dan Carpenter 2020-05-21 12:21 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A 0 siblings, 1 reply; 5+ messages in thread From: Dan Carpenter @ 2020-05-21 12:03 UTC (permalink / raw) To: dinghao.liu Cc: devel, Greg Kroah-Hartman, kjlu, linux-kernel, Jonathan Hunter, Thierry Reding, linux-tegra, Dmitry Osipenko, Mauro Carvalho Chehab, Rafael J. Wysocki, linux-pm, linux-media On Thu, May 21, 2020 at 07:42:56PM +0800, dinghao.liu@zju.edu.cn wrote: > We need to make sure if pm_runtime_get_sync() is designed with > such behavior before modifying it. > > I received a response from Rafael when I commited a similar patch: > https://lkml.org/lkml/2020/5/20/1100 > It seems that this behavior is intentional and needs to be kept. Yes. This is why I have said twice or three times to not change pm_runtime_get_sync() but instead to write a replacement. A large percent of the callers are buggy. The pm_runtime_get_sync() is a -4 on Rusty's API scale. http://sweng.the-davies.net/Home/rustys-api-design-manifesto One could argue that anything above a -4 is really a 2 if you read the implementation thouroughly enough... regards, dan carpenter ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: Re: [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error 2020-05-21 12:03 ` Dan Carpenter @ 2020-05-21 12:21 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A 0 siblings, 0 replies; 5+ messages in thread From: dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A @ 2020-05-21 12:21 UTC (permalink / raw) To: Dan Carpenter Cc: devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b, Greg Kroah-Hartman, kjlu-OJFnDUYgAso, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Jonathan Hunter, Thierry Reding, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Dmitry Osipenko, Mauro Carvalho Chehab, Rafael J. Wysocki, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-media-u79uwXL29TY76Z2rM5mHXA Sorry, I misunderstood your idea before. A new function is the best solution for this problem. Regards, Dinghao "Dan Carpenter" <dan.carpenter@oracle.com>写道: > On Thu, May 21, 2020 at 07:42:56PM +0800, dinghao.liu@zju.edu.cn wrote: > > We need to make sure if pm_runtime_get_sync() is designed with > > such behavior before modifying it. > > > > I received a response from Rafael when I commited a similar patch: > > https://lkml.org/lkml/2020/5/20/1100 > > It seems that this behavior is intentional and needs to be kept. > > Yes. This is why I have said twice or three times to not change > pm_runtime_get_sync() but instead to write a replacement. > > A large percent of the callers are buggy. The pm_runtime_get_sync() is > a -4 on Rusty's API scale. > http://sweng.the-davies.net/Home/rustys-api-design-manifesto > One could argue that anything above a -4 is really a 2 if you read > the implementation thouroughly enough... > > regards, > dan carpenter > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-05-21 12:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-21 6:27 [PATCH] [v2] media: staging: tegra-vde: fix runtime pm imbalance on error Dinghao Liu
[not found] ` <20200521062746.6656-1-dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A@public.gmane.org>
2020-05-21 11:21 ` Dan Carpenter
2020-05-21 11:42 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A
2020-05-21 12:03 ` Dan Carpenter
2020-05-21 12:21 ` dinghao.liu-Y5EWUtBUdg4nDS1+zs4M5A
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).