* [PATCH] drm/exynos: fix ref count leak in mic_pre_enable @ 2020-06-14 6:23 ` Navid Emamdoost 2020-06-15 0:52 ` Inki Dae 0 siblings, 1 reply; 5+ messages in thread From: Navid Emamdoost @ 2020-06-14 6:23 UTC (permalink / raw) To: Inki Dae, Joonyoung Shim, Seung-Woo Kim, Kyungmin Park, David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski, dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel Cc: emamd001, wu000273, kjlu, smccaman, Navid Emamdoost in mic_pre_enable, pm_runtime_get_sync is called which increments the counter even in case of failure, leading to incorrect ref count. In case of failure, decrement the ref count before returning. Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/gpu/drm/exynos/exynos_drm_mic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c index a86abc173605..69ff74c2ceb5 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c @@ -270,7 +270,7 @@ static void mic_pre_enable(struct drm_bridge *bridge) ret = pm_runtime_get_sync(mic->dev); if (ret < 0) - goto unlock; + goto turn_off; mic_set_path(mic, 1); -- 2.17.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/exynos: fix ref count leak in mic_pre_enable 2020-06-14 6:23 ` [PATCH] drm/exynos: fix ref count leak in mic_pre_enable Navid Emamdoost @ 2020-06-15 0:52 ` Inki Dae 2020-06-15 5:49 ` [PATCH v2] " Navid Emamdoost 2020-06-15 5:50 ` [PATCH] " Navid Emamdoost 0 siblings, 2 replies; 5+ messages in thread From: Inki Dae @ 2020-06-15 0:52 UTC (permalink / raw) To: Navid Emamdoost, Joonyoung Shim, Seung-Woo Kim, Kyungmin Park, David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski, dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel Cc: emamd001, wu000273, kjlu, smccaman Hi, 20. 6. 14. 오후 3:23에 Navid Emamdoost 이(가) 쓴 글: > in mic_pre_enable, pm_runtime_get_sync is called which > increments the counter even in case of failure, leading to incorrect > ref count. In case of failure, decrement the ref count before returning. > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > --- > drivers/gpu/drm/exynos/exynos_drm_mic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c > index a86abc173605..69ff74c2ceb5 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c > @@ -270,7 +270,7 @@ static void mic_pre_enable(struct drm_bridge *bridge) > > ret = pm_runtime_get_sync(mic->dev); > if (ret < 0) > - goto unlock; > + goto turn_off; How about just calling pm_runtime_put_noidle()? if (ret < 0) { pm_runtime_put_noidle(mic->dev); goto unlock; } Thanks, Inki Dae > > mic_set_path(mic, 1); > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] drm/exynos: fix ref count leak in mic_pre_enable 2020-06-15 0:52 ` Inki Dae @ 2020-06-15 5:49 ` Navid Emamdoost 2020-06-16 1:13 ` Inki Dae 2020-06-15 5:50 ` [PATCH] " Navid Emamdoost 1 sibling, 1 reply; 5+ messages in thread From: Navid Emamdoost @ 2020-06-15 5:49 UTC (permalink / raw) To: Inki Dae, Joonyoung Shim, Seung-Woo Kim, Kyungmin Park, David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski, dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel Cc: emamd001, wu000273, kjlu, mccamant, Navid Emamdoost in mic_pre_enable, pm_runtime_get_sync is called which increments the counter even in case of failure, leading to incorrect ref count. In case of failure, decrement the ref count before returning. Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- Changes in v2: - reuse the unlock label and call pm_runtime_put_noidle --- --- drivers/gpu/drm/exynos/exynos_drm_mic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c index a86abc173605..3821ea76a703 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c @@ -269,8 +269,10 @@ static void mic_pre_enable(struct drm_bridge *bridge) goto unlock; ret = pm_runtime_get_sync(mic->dev); - if (ret < 0) + if (ret < 0) { + pm_runtime_put_noidle(mic->dev); goto unlock; + } mic_set_path(mic, 1); -- 2.17.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] drm/exynos: fix ref count leak in mic_pre_enable 2020-06-15 5:49 ` [PATCH v2] " Navid Emamdoost @ 2020-06-16 1:13 ` Inki Dae 0 siblings, 0 replies; 5+ messages in thread From: Inki Dae @ 2020-06-16 1:13 UTC (permalink / raw) To: Navid Emamdoost, Joonyoung Shim, Seung-Woo Kim, Kyungmin Park, David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski, dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel Cc: emamd001, wu000273, kjlu, mccamant 20. 6. 15. 오후 2:49에 Navid Emamdoost 이(가) 쓴 글: > in mic_pre_enable, pm_runtime_get_sync is called which > increments the counter even in case of failure, leading to incorrect > ref count. In case of failure, decrement the ref count before returning. > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > --- > Changes in v2: > - reuse the unlock label and call pm_runtime_put_noidle Picked it up. Thanks, Inki Dae > --- > --- > drivers/gpu/drm/exynos/exynos_drm_mic.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c > index a86abc173605..3821ea76a703 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c > @@ -269,8 +269,10 @@ static void mic_pre_enable(struct drm_bridge *bridge) > goto unlock; > > ret = pm_runtime_get_sync(mic->dev); > - if (ret < 0) > + if (ret < 0) { > + pm_runtime_put_noidle(mic->dev); > goto unlock; > + } > > mic_set_path(mic, 1); > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/exynos: fix ref count leak in mic_pre_enable 2020-06-15 0:52 ` Inki Dae 2020-06-15 5:49 ` [PATCH v2] " Navid Emamdoost @ 2020-06-15 5:50 ` Navid Emamdoost 1 sibling, 0 replies; 5+ messages in thread From: Navid Emamdoost @ 2020-06-15 5:50 UTC (permalink / raw) To: Inki Dae Cc: Joonyoung Shim, Seung-Woo Kim, Kyungmin Park, David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski, dri-devel, linux-arm-kernel, linux-samsung-soc, LKML, Navid Emamdoost, Qiushi Wu, Kangjie Lu, Stephen McCamant On Sun, Jun 14, 2020 at 7:47 PM Inki Dae <inki.dae@samsung.com> wrote: > > Hi, > > 20. 6. 14. 오후 3:23에 Navid Emamdoost 이(가) 쓴 글: > > in mic_pre_enable, pm_runtime_get_sync is called which > > increments the counter even in case of failure, leading to incorrect > > ref count. In case of failure, decrement the ref count before returning. > > > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > > --- > > drivers/gpu/drm/exynos/exynos_drm_mic.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c > > index a86abc173605..69ff74c2ceb5 100644 > > --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c > > +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c > > @@ -270,7 +270,7 @@ static void mic_pre_enable(struct drm_bridge *bridge) > > > > ret = pm_runtime_get_sync(mic->dev); > > if (ret < 0) > > - goto unlock; > > + goto turn_off; > > How about just calling pm_runtime_put_noidle()? > > if (ret < 0) { > pm_runtime_put_noidle(mic->dev); > goto unlock; > } > v2 was sent. > Thanks, > Inki Dae > > > > > mic_set_path(mic, 1); > > > > -- Navid. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-06-16 1:07 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CGME20200614062349epcas1p1e285479c1e6483708b62f93e70a453a4@epcas1p1.samsung.com> 2020-06-14 6:23 ` [PATCH] drm/exynos: fix ref count leak in mic_pre_enable Navid Emamdoost 2020-06-15 0:52 ` Inki Dae 2020-06-15 5:49 ` [PATCH v2] " Navid Emamdoost 2020-06-16 1:13 ` Inki Dae 2020-06-15 5:50 ` [PATCH] " Navid Emamdoost
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).