linux-stable/drivers/gpu/drm
Chris Wilson 2471eb5fb6 drm/i915: Prevent timeline updates whilst performing reset
As the fence may be signaled concurrently from an interrupt on another
device, it is possible for the list of requests on the timeline to be
modified as we walk it. Take both (the context's timeline and the global
timeline) locks to prevent such modifications.

Fixes: 80b204bce8 ("drm/i915: Enable multiple timelines")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <drm-intel-fixes@lists.freedesktop.org>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161223145804.6605-10-chris@chris-wilson.co.uk
(cherry picked from commit 00c25e3f40)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2017-01-03 11:41:57 +02:00
..
amd ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
arc Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2016-12-06 10:26:48 +01:00
arm Linux 4.9-rc8 2016-12-05 17:11:48 +10:00
armada mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
ast drivers/gpu/drm/ast: Fix infinite loop if read fails 2016-12-18 14:39:50 +01:00
atmel-hlcdc drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
bochs drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
bridge drm/bridge: analogix: Don't return -EINVAL when panel doesn't support PSR 2016-12-07 08:27:36 +05:30
cirrus drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
etnaviv mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
exynos mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
fsl-dcu Merge tag 'drm-fsl-dcu-for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next 2016-12-09 12:43:17 +10:00
gma500 mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
hisilicon drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
i2c drm/i2c: tda998x: fix spelling mistake 2016-11-18 00:00:40 +00:00
i810 drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
i915 drm/i915: Prevent timeline updates whilst performing reset 2017-01-03 11:41:57 +02:00
imx Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2016-12-06 10:26:48 +01:00
mediatek Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2016-12-06 10:26:48 +01:00
meson drm: Add support for Amlogic Meson Graphic Controller 2016-12-01 10:07:20 +01:00
mga
mgag200 drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
msm mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
mxsfb drm: mxsfb: Select DRM_PANEL 2016-12-08 10:25:37 +10:00
nouveau ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
omapdrm mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
panel drm/panel: simple: Add support for AUO G185HAN01 2016-12-06 17:06:32 +01:00
qxl Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2016-12-06 10:26:48 +01:00
r128
radeon Merge branches 'acpica' and 'acpi-scan' 2016-12-22 14:34:24 +01:00
rcar-du drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
rockchip drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
savage drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
shmobile drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
sis drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
sti drm: Make the connector .detect() callback optional 2016-12-01 10:05:53 -05:00
sun4i Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2016-12-06 10:26:48 +01:00
tdfx drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
tegra mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
tilcdc ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
ttm mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
udl mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
vc4 This pull request brings in VEC (TV-out) support for vc4, along with a 2016-12-13 12:05:12 +10:00
vgem mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
via drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
virtio drm/virtio: annotate virtio_gpu_queue_ctrl_buffer_locked 2016-12-15 06:59:17 +02:00
vmwgfx drm/vmwgfx: Switch to mode_cmd2 2016-12-02 17:15:20 +01:00
zte drm: zte: checking for NULL instead of IS_ERR() 2016-11-15 11:00:42 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c This pull request brings in VEC (TV-out) support for vc4, along with a 2016-12-13 12:05:12 +10:00
drm_atomic_helper.c drm/atomic: doc: remove old comment about nonblocking commits 2016-12-06 16:28:30 -02:00
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c drm/color: document NULL values and default settings better 2016-11-15 22:39:48 +01:00
drm_connector.c drm: document standard connector properties 2016-11-18 09:45:07 +01:00
drm_context.c
drm_crtc.c drm/fence: add drm_crtc_create_fence() 2016-12-07 11:16:55 -02:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/fence: add drm_crtc_create_fence() 2016-12-07 11:16:55 -02:00
drm_debugfs.c drm/atomic: cleanup debugfs entries on un-registering the driver. 2016-11-21 13:22:08 -05:00
drm_debugfs_crc.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c
drm_dp_mst_topology.c
drm_drv.c drm: Add fake controlD* symlinks for backwards compat 2016-12-10 22:46:19 +01:00
drm_dumb_buffers.c drm: Consolidate dumb buffer docs 2016-11-15 12:51:49 +01:00
drm_edid.c Merge tag 'drm-misc-next-2016-11-29' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2016-11-30 14:28:20 +10:00
drm_edid_load.c
drm_encoder.c drm: Fix locking cargo-cult in encoder/plane init/cleanup 2016-11-29 23:34:36 +01:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm/fb_cma_helper: Add drm_fb_cma_prepare_fb() helper 2016-11-14 12:43:58 +01:00
drm_fb_helper.c drm: Protect fb_helper list manipulation with a mutex 2016-11-29 15:52:32 -05:00
drm_flip_work.c
drm_fops.c drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
drm_fourcc.c drm: move allocation out of drm_get_format_name() 2016-11-12 14:19:38 +01:00
drm_framebuffer.c drm: Nuke modifier[1-3] 2016-11-17 11:58:09 +01:00
drm_gem.c
drm_gem_cma_helper.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm: drm_irq.h header cleanup 2016-11-15 23:33:48 +01:00
drm_ioc32.c
drm_ioctl.c drm: Allow CAP_PRIME on !MODESET 2016-12-08 10:00:15 +01:00
drm_irq.c drm/irq: Unexport drm_vblank_on/off 2016-11-15 23:33:48 +01:00
drm_kms_helper_common.c
drm_legacy.h
drm_lock.c drm: Avoid NULL dereference for DRM_LEGACY debug message 2016-11-28 08:39:41 +01:00
drm_memory.c
drm_mipi_dsi.c
drm_mm.c drm: Initialise drm_mm.head_node.allocated 2016-12-01 10:35:45 +01:00
drm_mode_config.c drm/fence: add out-fences support 2016-11-16 14:36:27 +01:00
drm_mode_object.c
drm_modes.c Revert "drm: Add aspect ratio parsing in DRM layer" 2016-11-15 15:01:42 +01:00
drm_modeset_helper.c drm: also move DSI panels to the front of the connector list 2016-11-17 11:59:26 +01:00
drm_modeset_lock.c drm/doc: Fix indenting in drm_modeset_lock.c comment 2016-11-29 23:34:36 +01:00
drm_of.c
drm_panel.c
drm_pci.c
drm_plane.c Merge tag 'drm-misc-next-2016-12-08' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2016-12-09 12:29:10 +10:00
drm_plane_helper.c drm: add helpers to go from plane state to drm_rect 2016-11-08 16:38:03 -05:00
drm_platform.c
drm_prime.c drm: Take ownership of the dmabuf->obj when exporting 2016-12-08 10:29:22 +01:00
drm_print.c drm/print: Move kerneldoc next to definition 2016-11-15 12:55:24 +01:00
drm_probe_helper.c drm: Don't block the kworker waiting for mode_config.mutex in output_poll() 2016-12-06 13:41:15 +01:00
drm_property.c drm: Use u64_to_user_ptr() helper for blob ioctls 2016-11-28 08:12:18 +01:00
drm_rect.c drm: helper macros to print composite types 2016-11-08 16:38:03 -05:00
drm_scatter.c
drm_simple_kms_helper.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vm.c mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
drm_vma_manager.c
Kconfig Add support for the Amlogic Meson Video Processing Unit 2016-12-08 10:35:52 +10:00
Makefile Add support for the Amlogic Meson Video Processing Unit 2016-12-08 10:35:52 +10:00