On Sat, Jan 27, 2018 at 02:49:16AM +0000, Dhinakaran Pandiyan wrote:
> Frontbuffer flush and invalidate call psr, fbc and drrs functions that use
> mutexes but they can be called in atomic contexts in the fbdev path. The
> point where the spinlocks are acquired is up in the call stack that is not
> entirely easy to spot, so annotate with might_sleep().
>

makes sense

> Cc: Rodrigo Vivi <[email protected]>
> Signed-off-by: Dhinakaran Pandiyan <[email protected]>

Reviewed-by: Rodrigo Vivi <[email protected]>

> ---
>  drivers/gpu/drm/i915/intel_frontbuffer.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_frontbuffer.c 
> b/drivers/gpu/drm/i915/intel_frontbuffer.c
> index fcfc217e754e..3a8d3d06c26a 100644
> --- a/drivers/gpu/drm/i915/intel_frontbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_frontbuffer.c
> @@ -79,6 +79,7 @@ void __intel_fb_obj_invalidate(struct drm_i915_gem_object 
> *obj,
>               spin_unlock(&dev_priv->fb_tracking.lock);
>       }
>  
> +     might_sleep();
>       intel_psr_invalidate(dev_priv, frontbuffer_bits);
>       intel_edp_drrs_invalidate(dev_priv, frontbuffer_bits);
>       intel_fbc_invalidate(dev_priv, frontbuffer_bits, origin);
> @@ -108,6 +109,7 @@ static void intel_frontbuffer_flush(struct 
> drm_i915_private *dev_priv,
>       if (!frontbuffer_bits)
>               return;
>  
> +     might_sleep();
>       intel_edp_drrs_flush(dev_priv, frontbuffer_bits);
>       intel_psr_flush(dev_priv, frontbuffer_bits, origin);
>       intel_fbc_flush(dev_priv, frontbuffer_bits, origin);
> -- 
> 2.14.1
> 
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to