linux/drivers/gpu/drm
Chris Wilson 0b1570b7ff drm/i915: Protect i915_request_await_start from early waits
We need to be extremely careful inside i915_request_await_start() as it
needs to walk the list of requests in the foreign timeline with very
little protection. As we hold our own timeline mutex, we can not nest
inside the signaler's timeline mutex, so all that remains is our RCU
protection. However, to be safe we need to tell the compiler that we may
be traversing the list only under RCU protection, and furthermore we
need to start declaring requests as elements of the timeline from their
construction.

Fixes: 9ddc8ec027 ("drm/i915: Eliminate the trylock for awaiting an earlier request")
Fixes: 6a79d84840 ("drm/i915: Lock signaler timeline while navigating")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200227085723.1961649-11-chris@chris-wilson.co.uk
(cherry picked from commit d22d2d073e)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2020-03-02 12:10:46 +02:00
..
amd drm/amdgpu: Drop DRIVER_USE_AGP 2020-02-26 14:02:41 -05:00
arc DRM: ARC: PGU: add ARGB8888 format to supported format list 2019-12-16 13:53:05 +03:00
arm Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
armada drm: constify fb ops across all drivers 2019-12-05 10:57:42 +02:00
aspeed
ast drm/vram-helper: Remove BO device from public interface 2020-01-07 11:53:19 +01:00
atmel-hlcdc Revert "drm: atmel-hlcdc: enable sys_clk during initalization." 2020-01-06 19:54:27 +01:00
bochs drm/bochs: Remove unneeded semicolon 2019-12-16 12:39:50 +01:00
bridge Linux 5.6-rc1 2020-02-12 14:08:59 +01:00
cirrus
etnaviv drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
exynos drm/exynos: Rename Exynos to lowercase 2020-01-21 09:09:42 +09:00
fsl-dcu drm/panel: decouple connector from drm_panel 2019-12-09 22:57:26 +01:00
gma500 drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
hisilicon drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
i2c
i810 drm/i810: Don't include <drm/drm_pci.h> 2019-12-05 08:44:12 +01:00
i915 drm/i915: Protect i915_request_await_start from early waits 2020-03-02 12:10:46 +02:00
imx drm/panel: decouple connector from drm_panel 2019-12-09 22:57:26 +01:00
ingenic gpu/drm: ingenic: Add support for the JZ4770 2019-12-14 19:26:55 +01:00
lib
lima Merge tag 'amd-drm-next-5.6-2020-01-09' of git://people.freedesktop.org/~agd5f/linux into drm-next 2020-01-13 16:49:02 +10:00
mcde drm-misc-next for v5.6: 2020-01-03 11:43:44 +10:00
mediatek Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
meson drm: meson: fix address type confusion 2020-01-08 13:51:56 +01:00
mga drm/mga: Don't include <drm/drm_pci.h> 2019-12-05 08:44:16 +01:00
mgag200 drm/mgag200: Add module parameter to pin all buffers at offset 0 2020-01-07 11:53:19 +01:00
msm Merge tag 'drm-msm-fixes-2020-02-16' of https://gitlab.freedesktop.org/drm/msm into drm-fixes 2020-02-20 11:01:33 +10:00
mxsfb drm/panel: decouple connector from drm_panel 2019-12-09 22:57:26 +01:00
nouveau drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets 2020-02-17 17:19:00 +10:00
omapdrm drm/omapdrm: use BUG_ON macro for error debugging. 2020-01-08 18:35:36 +01:00
panel drm/panel: simple: Add Satoz SAT050AT40H12R2 panel support 2020-01-09 20:27:06 +01:00
panfrost Fixes for v5.6: 2020-02-14 12:53:00 +10:00
pl111 drm: get drm_bridge_panel connector via helper 2019-12-09 22:57:26 +01:00
qxl drm/qxl: Complete exception handling in qxl_device_init() 2019-11-29 13:09:11 +01:00
r128 drm/r128: Don't include <drm/drm_pci.h> 2019-12-05 08:44:23 +01:00
radeon drm/radeon: Inline drm_get_pci_dev 2020-02-26 14:02:41 -05:00
rcar-du Revert "drm/bridge: Patch atomic hooks to take a drm_bridge_state" 2020-01-08 00:34:28 +01:00
rockchip Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
savage drm/savage: Don't include <drm/drm_pci.h> 2019-12-05 08:44:34 +01:00
scheduler drm/amdgpu: fix doc by clarifying sched_list definition 2020-01-27 16:46:44 -05:00
selftests drm/modes: Make sure to parse valid rotation value from cmdline 2020-02-12 18:32:54 +01:00
shmobile
sis drm/sis: Don't include <drm/drm_pci.h> 2019-12-05 08:44:55 +01:00
sti drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
stm drm/stm: ltdc: move pinctrl to encoder mode set 2019-12-20 13:30:42 +01:00
sun4i Fixes for v5.6: 2020-02-14 12:53:00 +10:00
tdfx drm/tdfx: Don't include <drm/drm_pci.h> 2019-12-05 08:45:01 +01:00
tegra drm/tegra: Fixes for v5.6-rc1 2020-02-07 12:22:30 +10:00
tilcdc drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
tiny Merge tag 'topic/drm-mipi-dsi-dsc-updates-2019-11-11' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next-queued 2019-11-20 15:54:38 +02:00
ttm drm ttm/mm changes for 5.6-rc1 2020-02-04 07:21:04 +00:00
tve200 drm: get drm_bridge_panel connector via helper 2019-12-09 22:57:26 +01:00
udl drm/udl: Make udl driver depend on CONFIG_USB 2020-01-09 15:02:48 +01:00
v3d drm/scheduler: rework entity creation 2019-12-18 16:09:12 -05:00
vboxvideo
vc4 drm/vc4: dsi: Fix bridge chain handling 2020-01-08 09:09:48 +01:00
vgem drm/vgem: Close use-after-free race in vgem_gem_create 2020-02-06 19:04:41 +01:00
via Merge branch 'akpm' (patches from Andrew) 2020-01-31 12:16:36 -08:00
virtio Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
vkms drm/vkms: Fix typo and preposion in function documentation 2019-12-05 18:55:55 -05:00
vmwgfx drm/vmwgfx: Use VM_PFNMAP instead of VM_MIXEDMAP when possible 2020-01-15 14:34:49 +01:00
xen
zte drm: zte: Provide ddc symlink in vga connector sysfs directory 2020-01-07 20:26:02 +01:00
drm_agpsupport.c
drm_atomic_helper.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_atomic_state_helper.c drm: Add __drm_atomic_helper_crtc_state_reset() & co. 2019-12-18 16:47:34 +02:00
drm_atomic_uapi.c drm/atomic: Spell CRTC consistently 2019-12-22 11:13:00 +01:00
drm_atomic.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_auth.c
drm_blend.c
drm_bridge.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_bufs.c
drm_cache.c
drm_client_modeset.c drm/modes: Allow DRM_MODE_ROTATE_0 when applying video mode parameters 2020-02-12 18:32:58 +01:00
drm_client.c drm/client: convert to drm device based logging 2019-12-19 15:52:44 +02:00
drm_color_mgmt.c drm: Inline drm_color_lut_extract() 2019-11-29 21:29:17 +02:00
drm_connector.c drm main pull for 5.5-rc1 2019-11-27 17:45:48 -08:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c drm/crtc-helper: drm_connector_get_single_encoder prototype is missing 2019-12-03 17:42:57 +01:00
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c
drm_debugfs_crc.c drm: Set crc->opened to false before setting crc source to NULL. 2020-01-07 15:29:40 -05:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c drm/dp_mst: Add MST support to DP DPCD R/W functions 2020-01-09 18:07:46 -05:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: add dp helper to initialize remote aux channel. 2020-01-09 18:07:48 -05:00
drm_dp_mst_topology_internal.h
drm_dp_mst_topology.c Fixes for v5.6: 2020-02-14 12:53:00 +10:00
drm_drv.c drm: remove duplicate check on parent and avoid BUG_ON 2019-12-17 17:26:08 +01:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: fix building error 2020-02-06 22:01:40 +02:00
drm_encoder_slave.c
drm_encoder.c drm/bridge: Make the bridge chain a double-linked list 2019-12-09 10:03:01 +01:00
drm_fb_cma_helper.c drm/fb-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
drm_fb_helper.c Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
drm_file.c i915 features for v5.6: 2019-12-27 15:25:04 +10:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c drm/fourcc: Fill out all block sizes for P210 2019-11-28 11:19:32 +01:00
drm_framebuffer.c
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: convert to drm device based logging 2019-12-19 15:55:10 +02:00
drm_gem_shmem_helper.c drm: call drm_gem_object_funcs.mmap with fake offset 2019-12-06 11:18:11 +01:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: Support struct drm_driver.gem_create_object 2020-01-07 11:53:19 +01:00
drm_gem.c drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm/pci: Only build drm_pci.c if CONFIG_PCI is set 2019-12-05 08:43:14 +01:00
drm_ioc32.c
drm_ioctl.c drm: drop DRM_AUTH from PRIME_TO/FROM_HANDLE ioctls 2019-12-02 16:52:15 +00:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy_misc.c
drm_legacy.h
drm_lock.c gpu/drm: clean up white space in drm_legacy_lock_master_cleanup() 2020-01-08 19:51:11 +01:00
drm_memory.c
drm_mipi_dbi.c drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank() 2020-01-02 15:35:56 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm/modeset: Prime modeset lock vs dma_resv 2019-11-21 11:03:31 +01:00
drm_mode_object.c
drm_modes.c drm/modes: Make sure to parse valid rotation value from cmdline 2020-02-12 18:32:54 +01:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm: of: Add drm_of_lvds_get_dual_link_pixel_order 2019-12-18 02:40:16 +02:00
drm_panel_orientation_quirks.c
drm_panel.c drm/drm_panel: Fix EXPORT of drm_panel_of_backlight() one more time 2019-12-17 20:39:33 +01:00
drm_pci.c drm/pci: Hide legacy PCI functions from non-legacy code 2019-12-05 08:44:04 +01:00
drm_plane_helper.c
drm_plane.c
drm_prime.c drm: share address space for dma bufs 2019-12-06 11:18:11 +01:00
drm_print.c
drm_probe_helper.c drm: Stop accessing encoder->bridge directly 2019-12-09 10:02:45 +01:00
drm_property.c drm: limit to INT_MAX in create_blob ioctl 2019-12-04 19:44:13 -08:00
drm_rect.c drm/rect: update kerneldoc for drm_rect_clip_scaled() 2019-11-28 13:15:43 +01:00
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank.c
drm_vm.c
drm_vma_manager.c
drm_vram_helper_common.c
drm_writeback.c
Kconfig drm/Kconfig: add missing 'depends on DRM' for DRM_DP_CEC 2020-01-09 10:16:35 +01:00
Makefile drm/pci: Only build drm_pci.c if CONFIG_PCI is set 2019-12-05 08:43:14 +01:00