Re: [PATCH] drm/i915: Release connector iterator on a digital port conflict.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 15, 2018 at 10:14:25AM +0100, Maarten Lankhorst wrote:
> <4>[   30.702366] ================================================
> <4>[   30.702383] WARNING: lock held when returning to user space!
> <4>[   30.702404] 4.16.0-rc1-CI-kasan_1+ #1 Tainted: G        W
> <4>[   30.702422] ------------------------------------------------
> <4>[   30.702440] kms_3d/1439 is leaving the kernel with locks still held!
> <4>[   30.702459] 1 lock held by kms_3d/1439:
> <4>[   30.702472]  #0:  (drm_connector_list_iter){.+.+}, at: [<000000003745d183>] intel_atomic_check+0x1d9d/0x3ff0 [i915]
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
> Reported-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 3eb4c4b2e0e0..9f9656c9cfbe 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10635,6 +10635,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
>  	struct drm_connector_list_iter conn_iter;
>  	unsigned int used_ports = 0;
>  	unsigned int used_mst_ports = 0;
> +	bool ret = true;
>  
>  	/*
>  	 * Walk the connector list instead of the encoder
> @@ -10669,7 +10670,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
>  
>  			/* the same port mustn't appear more than once */

2 eDPs?!

anyways seems that we do have to end the iteration.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>

>  			if (used_ports & port_mask)
> -				return false;
> +				ret = false;
>  
>  			used_ports |= port_mask;
>  			break;
> @@ -10687,7 +10688,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
>  	if (used_ports & used_mst_ports)
>  		return false;
>  
> -	return true;
> +	return ret;
>  }
>  
>  static void
> -- 
> 2.16.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux