linux/drivers/gpu/drm/qxl
Gabriel Krisman Bertazi 715a11fabb drm: qxl: Consolidate bo reservation when pinning
Every attempt to pin/unpin objects in memory requires
qxl_bo_reserve/unreserve calls around the pinning operation to protect
the object from concurrent access, which causes that call sequence to be
reproduced every place where pinning is needed.  In some cases, that
sequence was not executed correctly, resulting in potential unprotected
pinning operations.

This commit encapsulates the reservation inside a new wrapper to make
sure it is always handled properly.  In cases where reservation must be
done beforehand, for some reason, one can use the unprotected version
__qxl_bo_pin/unpin.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170227204328.18761-3-krisman@collabora.co.uk
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2017-02-28 17:26:08 +01:00
..
Kconfig drm: fix compilations issues introduced by "drm: allow to use mmuless SoC" 2017-01-09 11:30:30 +01: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 qxl: Mark some internal functions as static 2016-11-15 09:45:31 +01:00
qxl_debugfs.c drm: qxl: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00
qxl_dev.h
qxl_display.c drm: qxl: Consolidate bo reservation when pinning 2017-02-28 17:26:08 +01:00
qxl_draw.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
qxl_drv.c drm: qxl: Drop device flags attribute 2017-02-28 17:26:07 +01:00
qxl_drv.h drm: qxl: Drop device flags attribute 2017-02-28 17:26:07 +01:00
qxl_dumb.c drm: Remove unused drm_device from drm_gem_object_lookup() 2016-05-17 08:47:30 +02:00
qxl_fb.c drm: qxl: Consolidate bo reservation when pinning 2017-02-28 17:26:08 +01:00
qxl_gem.c qxl: Remove qxl_bo_init() return value 2016-11-15 09:45:32 +01: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: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00
qxl_irq.c drm: qxl: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00
qxl_kms.c drm: qxl: Drop device flags attribute 2017-02-28 17:26:07 +01:00
qxl_object.c drm: qxl: Consolidate bo reservation when pinning 2017-02-28 17:26:08 +01:00
qxl_object.h drm: qxl: Drop duplicated device pointer attribute 2017-02-02 10:02:34 +01:00
qxl_prime.c drm/qxl: fix erroneous return value 2016-02-17 15:39:35 +10:00
qxl_release.c drm/qxl: fix use of uninitialized variable 2016-12-05 13:14:13 -05:00
qxl_ttm.c drm: qxl: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00