drm/qxl: avoid buffer reservation in qxl_crtc_page_flip
authorFrediano Ziglio <fziglio@redhat.com>
Thu, 24 Sep 2015 13:25:14 +0000 (14:25 +0100)
committerDave Airlie <airlied@redhat.com>
Wed, 7 Oct 2015 05:33:06 +0000 (15:33 +1000)
commit7eb9974f3685f36f419bf9e66cfaee92849856fe
tree7cb7b20e8908eed39d645bb53f01f4a326399c52
parent60906529bec506a4bde93f04eb5e7a9dd9c42a3b
drm/qxl: avoid buffer reservation in qxl_crtc_page_flip

This avoid a dependency lock error.
According to https://lwn.net/Articles/548909/ users of WW mutex API
should avoid using different context.
When a buffer is reserved with qxl_bo_reserve a ww_mutex_lock without
context is used. However during qxl_draw_dirty_fb different locks
with specific context are used.
This is detected during a machine booting with a debug kernel with lock
dependency checking enabled.
Like many other function in this file to avoid this problem object
pinning is used. Once the object is pinned is not necessary to keep
the lock so it can be released avoiding the locking problem.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c