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
