linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
@ 2024-11-11  9:06 Dan Carpenter
  2024-11-11 14:29 ` Sean Anderson
  2024-11-12  5:27 ` Laurent Pinchart
  0 siblings, 2 replies; 8+ messages in thread
From: Dan Carpenter @ 2024-11-11  9:06 UTC (permalink / raw)
  To: Sean Anderson
  Cc: Laurent Pinchart, Tomi Valkeinen, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
	Michal Simek, dri-devel, linux-arm-kernel, linux-kernel,
	kernel-janitors

We added some locking to this function, but accidentally forgot to unlock
if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.

Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 drivers/gpu/drm/xlnx/zynqmp_dp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b/drivers/gpu/drm/xlnx/zynqmp_dp.c
index 25c5dc61ee88..0bea908b281e 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dp.c
@@ -1537,7 +1537,7 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
 
 	pm_runtime_get_sync(dp->dev);
 
-	mutex_lock(&dp->lock);
+	guard(mutex)(&dp->lock);
 	zynqmp_dp_disp_enable(dp, old_bridge_state);
 
 	/*
@@ -1598,7 +1598,6 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
 	zynqmp_dp_write(dp, ZYNQMP_DP_SOFTWARE_RESET,
 			ZYNQMP_DP_SOFTWARE_RESET_ALL);
 	zynqmp_dp_write(dp, ZYNQMP_DP_MAIN_STREAM_ENABLE, 1);
-	mutex_unlock(&dp->lock);
 }
 
 static void zynqmp_dp_bridge_atomic_disable(struct drm_bridge *bridge,
-- 
2.45.2



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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-11  9:06 [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable() Dan Carpenter
@ 2024-11-11 14:29 ` Sean Anderson
  2024-11-12  5:27 ` Laurent Pinchart
  1 sibling, 0 replies; 8+ messages in thread
From: Sean Anderson @ 2024-11-11 14:29 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Laurent Pinchart, Tomi Valkeinen, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
	Michal Simek, dri-devel, linux-arm-kernel, linux-kernel,
	kernel-janitors

On 11/11/24 04:06, Dan Carpenter wrote:
> We added some locking to this function, but accidentally forgot to unlock
> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
> 
> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> ---
>  drivers/gpu/drm/xlnx/zynqmp_dp.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b/drivers/gpu/drm/xlnx/zynqmp_dp.c
> index 25c5dc61ee88..0bea908b281e 100644
> --- a/drivers/gpu/drm/xlnx/zynqmp_dp.c
> +++ b/drivers/gpu/drm/xlnx/zynqmp_dp.c
> @@ -1537,7 +1537,7 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
>  
>  	pm_runtime_get_sync(dp->dev);
>  
> -	mutex_lock(&dp->lock);
> +	guard(mutex)(&dp->lock);
>  	zynqmp_dp_disp_enable(dp, old_bridge_state);
>  
>  	/*
> @@ -1598,7 +1598,6 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
>  	zynqmp_dp_write(dp, ZYNQMP_DP_SOFTWARE_RESET,
>  			ZYNQMP_DP_SOFTWARE_RESET_ALL);
>  	zynqmp_dp_write(dp, ZYNQMP_DP_MAIN_STREAM_ENABLE, 1);
> -	mutex_unlock(&dp->lock);
>  }
>  
>  static void zynqmp_dp_bridge_atomic_disable(struct drm_bridge *bridge,

Reviewed-by: Sean Anderson <sean.anderson@linux.dev>

Although this reverses the order of pm_runtime_put and mutex_unlock in
the error case, I don't think it matters.


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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-11  9:06 [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable() Dan Carpenter
  2024-11-11 14:29 ` Sean Anderson
@ 2024-11-12  5:27 ` Laurent Pinchart
  2024-11-12 14:41   ` Sean Anderson
  1 sibling, 1 reply; 8+ messages in thread
From: Laurent Pinchart @ 2024-11-12  5:27 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Sean Anderson, Tomi Valkeinen, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

Hi Dan,

Thank you for the patch.

On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
> We added some locking to this function, but accidentally forgot to unlock
> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
> 
> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
you've added in a7d5eeaa57d7 with guards ?

> ---
>  drivers/gpu/drm/xlnx/zynqmp_dp.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b/drivers/gpu/drm/xlnx/zynqmp_dp.c
> index 25c5dc61ee88..0bea908b281e 100644
> --- a/drivers/gpu/drm/xlnx/zynqmp_dp.c
> +++ b/drivers/gpu/drm/xlnx/zynqmp_dp.c
> @@ -1537,7 +1537,7 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
>  
>  	pm_runtime_get_sync(dp->dev);
>  
> -	mutex_lock(&dp->lock);
> +	guard(mutex)(&dp->lock);
>  	zynqmp_dp_disp_enable(dp, old_bridge_state);
>  
>  	/*
> @@ -1598,7 +1598,6 @@ static void zynqmp_dp_bridge_atomic_enable(struct drm_bridge *bridge,
>  	zynqmp_dp_write(dp, ZYNQMP_DP_SOFTWARE_RESET,
>  			ZYNQMP_DP_SOFTWARE_RESET_ALL);
>  	zynqmp_dp_write(dp, ZYNQMP_DP_MAIN_STREAM_ENABLE, 1);
> -	mutex_unlock(&dp->lock);
>  }
>  
>  static void zynqmp_dp_bridge_atomic_disable(struct drm_bridge *bridge,

-- 
Regards,

Laurent Pinchart


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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-12  5:27 ` Laurent Pinchart
@ 2024-11-12 14:41   ` Sean Anderson
  2024-11-12 16:43     ` Laurent Pinchart
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Anderson @ 2024-11-12 14:41 UTC (permalink / raw)
  To: Laurent Pinchart, Dan Carpenter
  Cc: Tomi Valkeinen, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

On 11/12/24 00:27, Laurent Pinchart wrote:
> Hi Dan,
> 
> Thank you for the patch.
> 
> On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
>> We added some locking to this function, but accidentally forgot to unlock
>> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
>> 
>> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
>> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
> you've added in a7d5eeaa57d7 with guards ?

I have no objection to that.

--Sean



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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-12 14:41   ` Sean Anderson
@ 2024-11-12 16:43     ` Laurent Pinchart
  2024-11-12 17:22       ` Sean Anderson
  0 siblings, 1 reply; 8+ messages in thread
From: Laurent Pinchart @ 2024-11-12 16:43 UTC (permalink / raw)
  To: Sean Anderson
  Cc: Dan Carpenter, Tomi Valkeinen, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote:
> On 11/12/24 00:27, Laurent Pinchart wrote:
> > Hi Dan,
> > 
> > Thank you for the patch.
> > 
> > On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
> >> We added some locking to this function, but accidentally forgot to unlock
> >> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
> >> 
> >> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
> >> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> > 
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > 
> > Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
> > you've added in a7d5eeaa57d7 with guards ?
> 
> I have no objection to that.

Would you send a patch ? Otherwise I can do it.

-- 
Regards,

Laurent Pinchart


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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-12 16:43     ` Laurent Pinchart
@ 2024-11-12 17:22       ` Sean Anderson
  2025-01-23 23:56         ` Sean Anderson
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Anderson @ 2024-11-12 17:22 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Dan Carpenter, Tomi Valkeinen, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

On 11/12/24 11:43, Laurent Pinchart wrote:
> On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote:
>> On 11/12/24 00:27, Laurent Pinchart wrote:
>> > Hi Dan,
>> > 
>> > Thank you for the patch.
>> > 
>> > On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
>> >> We added some locking to this function, but accidentally forgot to unlock
>> >> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
>> >> 
>> >> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
>> >> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
>> > 
>> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> > 
>> > Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
>> > you've added in a7d5eeaa57d7 with guards ?
>> 
>> I have no objection to that.
> 
> Would you send a patch ? Otherwise I can do it.
> 

I can send a patch, but it will not be for a week or two.

--Sean


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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2024-11-12 17:22       ` Sean Anderson
@ 2025-01-23 23:56         ` Sean Anderson
  2025-01-24  7:28           ` Tomi Valkeinen
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Anderson @ 2025-01-23 23:56 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Dan Carpenter, Tomi Valkeinen, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

On 11/12/24 12:22, Sean Anderson wrote:
> On 11/12/24 11:43, Laurent Pinchart wrote:
>> On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote:
>>> On 11/12/24 00:27, Laurent Pinchart wrote:
>>> > Hi Dan,
>>> > 
>>> > Thank you for the patch.
>>> > 
>>> > On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
>>> >> We added some locking to this function, but accidentally forgot to unlock
>>> >> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
>>> >> 
>>> >> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
>>> >> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
>>> > 
>>> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> > 
>>> > Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
>>> > you've added in a7d5eeaa57d7 with guards ?
>>> 
>>> I have no objection to that.
>> 
>> Would you send a patch ? Otherwise I can do it.
>> 
> 
> I can send a patch, but it will not be for a week or two.
> 
> --Sean

Just following up on this; will the above patched be merged? I would
prefer to keep the bugfix and the conversion separate.

--Sean


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

* Re: [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable()
  2025-01-23 23:56         ` Sean Anderson
@ 2025-01-24  7:28           ` Tomi Valkeinen
  0 siblings, 0 replies; 8+ messages in thread
From: Tomi Valkeinen @ 2025-01-24  7:28 UTC (permalink / raw)
  To: Sean Anderson, Laurent Pinchart
  Cc: Dan Carpenter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Michal Simek,
	dri-devel, linux-arm-kernel, linux-kernel, kernel-janitors

Hi,

On 24/01/2025 01:56, Sean Anderson wrote:
> On 11/12/24 12:22, Sean Anderson wrote:
>> On 11/12/24 11:43, Laurent Pinchart wrote:
>>> On Tue, Nov 12, 2024 at 09:41:58AM -0500, Sean Anderson wrote:
>>>> On 11/12/24 00:27, Laurent Pinchart wrote:
>>>>> Hi Dan,
>>>>>
>>>>> Thank you for the patch.
>>>>>
>>>>> On Mon, Nov 11, 2024 at 12:06:10PM +0300, Dan Carpenter wrote:
>>>>>> We added some locking to this function, but accidentally forgot to unlock
>>>>>> if zynqmp_dp_mode_configure() failed.  Use a guard lock to fix it.
>>>>>>
>>>>>> Fixes: a7d5eeaa57d7 ("drm: zynqmp_dp: Add locking")
>>>>>> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
>>>>>
>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>>
>>>>> Sean, how about replacing all the mutex_lock()/mutex_unlock() calls
>>>>> you've added in a7d5eeaa57d7 with guards ?
>>>>
>>>> I have no objection to that.
>>>
>>> Would you send a patch ? Otherwise I can do it.
>>>
>>
>> I can send a patch, but it will not be for a week or two.
>>
>> --Sean
> 
> Just following up on this; will the above patched be merged? I would
> prefer to keep the bugfix and the conversion separate.

I'll push to drm-misc-fixes.

  Tomi



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

end of thread, other threads:[~2025-01-24  7:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-11  9:06 [PATCH next] drm: zynqmp_dp: Unlock on error in zynqmp_dp_bridge_atomic_enable() Dan Carpenter
2024-11-11 14:29 ` Sean Anderson
2024-11-12  5:27 ` Laurent Pinchart
2024-11-12 14:41   ` Sean Anderson
2024-11-12 16:43     ` Laurent Pinchart
2024-11-12 17:22       ` Sean Anderson
2025-01-23 23:56         ` Sean Anderson
2025-01-24  7:28           ` Tomi Valkeinen

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).