linux/drivers/gpu/drm/qxl
Frediano Ziglio 7eb9974f36 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>
2015-10-07 15:33:06 +10:00
..
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-01-22 21:21:55 -08:00
Makefile drm/qxl: enables gem prime helpers for qxl using dummy driver callbacks 2014-09-03 15:36:52 +10:00
qxl_cmd.c drm/qxl: Remove format string errors 2015-06-05 11:00:51 +10:00
qxl_debugfs.c drm/qxl: Remove release_lock stupidity 2014-09-03 17:09:11 +02:00
qxl_dev.h
qxl_display.c drm/qxl: avoid buffer reservation in qxl_crtc_page_flip 2015-10-07 15:33:06 +10:00
qxl_draw.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_drv.c drm/qxl: Fix qxl_noop_get_vblank_counter() 2015-05-04 11:14:55 +02:00
qxl_drv.h drm/qxl: validate monitors config modes 2015-09-11 10:51:33 +10:00
qxl_dumb.c drm/gem: create drm_gem_dumb_destroy 2013-08-07 09:59:24 +10:00
qxl_fb.c drm/qxl: fix framebuffer dirty rectangle tracking. 2015-10-07 15:31:45 +10:00
qxl_gem.c drm/qxl: Move main reference counter to GEM object instead of TTM ones 2015-06-05 11:00:51 +10:00
qxl_image.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_ioctl.c drm/qxl: Propagate correctly errors from qxlhw_handle_to_bo 2015-06-05 11:00:52 +10:00
qxl_irq.c drm/qxl: return IRQ_NONE if it was not our irq 2014-07-17 08:08:06 +10:00
qxl_kms.c drm/qxl: simple crtc page flipping emulated using buffer copy 2014-09-03 15:35:27 +10:00
qxl_object.c drm/qxl: Don't take dev->struct_mutex in bo_force_delete 2015-08-11 12:04:16 +02:00
qxl_object.h drm/ttm: flip the switch, and convert to dma_fence 2014-09-02 16:41:50 +02:00
qxl_prime.c drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
qxl_release.c drm/qxl: Remove format string errors 2015-06-05 11:00:51 +10:00
qxl_ttm.c drm/<ttm-based-drivers>: Don't call drm_mmap 2014-09-24 11:42:51 +10:00