drm/i915/frontbuffer: Mark frontbuffer flush and invalidate with might_sleep()
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(). Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180223221520.18464-2-dhinakaran.pandiyan@intel.com
This commit is contained in:
parent
b891d5e46c
commit
51e98eb851
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user