linux/drivers/gpu/drm
Chris Wilson dbd6ef29a7 drm/i915: Use RCU to annotate and enforce protection for breadcrumb's bh
The bottom-half we use for processing the breadcrumb interrupt is a
task, which is an RCU protected struct. When accessing this struct, we
need to be holding the RCU read lock to prevent it disappearing beneath
us. We can use the RCU annotation to mark our irq_seqno_bh pointer as
being under RCU guard and then use the RCU accessors to both provide
correct ordering of access through the pointer.

Most notably, this fixes the access from hard irq context to use the RCU
read lock, which both Daniel and Tvrtko complained about.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1470761272-1245-3-git-send-email-chris@chris-wilson.co.uk
2016-08-10 10:37:49 +01:00
..
amd drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events 2016-07-29 14:37:13 -04:00
arc drm/arc: Remove redundant dev_err call in arcpgu_load() 2016-07-19 15:33:50 -04:00
arm drm/arm: mali-dp: Fix error return code in malidp_bind() 2016-07-28 12:59:56 +02:00
armada drm/armada: make fbdev support really optional 2016-07-18 09:11:33 +02:00
ast Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
atmel-hlcdc Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
bochs Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
bridge Merge tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-30 05:26:07 +10:00
cirrus Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
etnaviv drm/etnaviv: Optimize error handling in etnaviv_gem_new_userptr() 2016-07-22 13:51:49 -04:00
exynos GPU-DRM-Exynos: Delete an unnecessary check before the function call "vunmap" 2016-07-21 14:06:33 -04:00
fsl-dcu Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
gma500 drm/gma500: remove unnecessary stub for fb_ioctl() 2016-07-28 10:04:03 +02:00
hisilicon drm/hisilicon: Fix ADE vblank on/off handling 2016-07-12 14:17:03 +02:00
i2c drm/i2c: adv7511: Move to bridge folder 2016-07-13 14:24:35 +05:30
i810
i915 drm/i915: Use RCU to annotate and enforce protection for breadcrumb's bh 2016-08-10 10:37:49 +01:00
imx imx-drm ldb mode set fix 2016-07-30 05:45:30 +10:00
mediatek Merge tag 'topic/drm-misc-2016-07-14' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-15 11:01:37 +10:00
mga
mgag200 drm/mgag200: Delete an unnecessary check before drm_gem_object_unreference_unlocked() 2016-07-22 11:23:39 -04:00
msm drm/msm: Delete an unnecessary check before drm_gem_object_unreference() 2016-07-16 10:29:35 -04:00
nouveau Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
omapdrm GPU-DRM-OMAP: Delete unnecessary checks before two function calls 2016-07-22 10:27:59 +02:00
panel drm/panel: simple: Add support for Starry KR122EA0SRA panel 2016-07-11 14:30:43 +02:00
qxl drm/qxl: Delete an unnecessary check before drm_gem_object_unreference_unlocked() 2016-07-22 11:23:39 -04:00
r128
radeon drm/radeon: Remove deprecated create_singlethread_workqueue 2016-07-29 14:36:55 -04:00
rcar-du Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
rockchip Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
savage
shmobile drm/shmobile: make fbdev support really optional 2016-07-18 09:11:37 +02:00
sis
sti drm/sti: use new Reset API 2016-07-26 10:25:00 -04:00
sun4i Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
tdfx
tegra Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
tilcdc drm/tilcdc: make fbdev support really optional 2016-07-18 09:11:38 +02:00
ttm drm/ttm: partial revert "cleanup ttm_tt_(unbind|destroy)" v3 2016-07-29 14:37:04 -04:00
udl drm/udl: make fbdev support really optional 2016-07-18 09:11:40 +02:00
vc4 Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
vgem drm/vgem: Fix non static symbol warning 2016-07-19 15:01:52 +02:00
via
virtio drm/virtio: Fix non static symbol warning 2016-07-19 15:44:10 -04:00
vmwgfx Merge tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-30 05:26:07 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c
drm_atomic.c drm/atomic: Delete an unnecessary check before drm_property_unreference_blob() 2016-07-20 13:23:39 -04:00
drm_auth.c
drm_bridge.c
drm_bufs.c
drm_cache.c drm: Restore double clflush on the last partial cacheline 2016-07-12 15:57:13 +02:00
drm_context.c
drm_crtc_helper.c
drm_crtc_internal.h Revert "drm: Resurrect atomic rmfb code" 2016-07-14 15:18:15 +02:00
drm_crtc.c drm: drm_connector->s/connector_id/index/ for consistency 2016-07-19 21:51:17 +02:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c drm_aux-dev: fix error handling in drm_dp_aux_dev_init() 2016-07-12 14:10:57 +02:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: aux ->transfer() can return 0, deal with it 2016-07-29 14:13:03 +10:00
drm_dp_mst_topology.c drm/dp-mst: Missing kernel doc 2016-07-19 10:31:53 +02:00
drm_drv.c drm: Do a full device unregister when unplugging 2016-07-12 13:01:49 +02:00
drm_edid_load.c
drm_edid.c
drm_encoder_slave.c
drm_fb_cma_helper.c Merge branch 'for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next 2016-07-02 16:21:35 +10:00
drm_fb_helper.c
drm_flip_work.c
drm_fops.c
drm_fourcc.c
drm_gem_cma_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c drm: Don't overwrite user ioctl arg unless requested 2016-07-14 10:12:50 +02:00
drm_irq.c drm: Extract&Document drm_irq.h 2016-07-19 10:29:47 +02:00
drm_kms_helper_common.c
drm_legacy.h
drm_lock.c
drm_memory.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_mipi_dsi.c drm/dsi: Make set_tear_scanline command consistent 2016-07-12 13:19:26 +02:00
drm_mm.c
drm_modes.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_platform.c
drm_prime.c
drm_probe_helper.c
drm_rect.c
drm_scatter.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_simple_kms_helper.c
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vm.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_vma_manager.c
Kconfig
Makefile