OpenCloudOS-Kernel/drivers/gpu/drm
Keith Packard 8497825753 drm/i915: cleanup_plane_fb: also drop reference to current state wait_req
There are two paths into intel_cleanup_plane_fb, the normal completion
path and the failure path.

In the failure case, intel_cleanup_plane_fb is called before
drm_atomic_helper_swap_state, so any wait_req reference made in
intel_prepare_plane_fb will be in old_intel_state->wait_req.

In the normal completion path, drm_atomic_helper_swap_state has
already been called, so the plane state holding the just-used wait_req
will not be in old_intel_state->wait_req, rather it will be in the
state associated with the plane itself.

Clearing this reference ensures that the wait_req will be freed as
soon as it the related mode setting operation is complete, rather than
waiting for some future mode setting operation to eventually
dereference it.

The existing dereference of old_intel_state->wait_req is still
required as that will hold the wait_req when the mode setting
operation fails.

cc: Daniel Vetter <daniel.vetter@intel.com>
cc: David Airlie <airlied@linux.ie>
cc: intel-gfx@lists.freedesktop.org
cc: dri-devel@lists.freedesktop.org
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-08-02 15:44:32 +02:00
..
amd drm/amdkfd: Clean up inline handling 2016-06-21 21:32:52 +02:00
arc drm/arc: Remove redundant calls to drm_connector_register_all() 2016-06-21 10:53:12 +02:00
arm drm/arm: Add support for Mali Display Processors 2016-06-15 17:29:22 +01:00
armada drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
ast Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
atmel-hlcdc drm/atmel-hlcdc: Remove redundant call to drm_connector_unregister_all() 2016-06-22 09:57:20 +02:00
bochs drm/bochs: Use lockless gem BO free callback 2016-06-01 09:40:16 +02:00
bridge drm/bridge: Add sii902x driver 2016-06-20 15:55:49 +02:00
cirrus Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
etnaviv drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
exynos drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
fsl-dcu drm/fsl-dcu: use drm_mode_config_cleanup on initialization errors 2016-06-21 15:37:26 +02:00
gma500 drm/gma500: use drm_crtc_vblank_{on,off}() 2016-06-13 18:38:19 +02:00
hisilicon drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
i2c
i810
i915 drm/i915: cleanup_plane_fb: also drop reference to current state wait_req 2016-08-02 15:44:32 +02:00
imx drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
mediatek MT8173 HDMI support 2016-06-24 13:16:07 +10:00
mga
mgag200 Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
msm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
nouveau drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
omapdrm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
panel drm/panel: simple: Add support for TPK U.S.A. LLC Fusion 7" and 10.1" panels 2016-05-12 11:32:14 +02:00
qxl Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
r128
radeon drm/radeon: use crtc directly in drm_crtc_vblank_put() 2016-06-13 18:38:12 +02:00
rcar-du Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/media into drm-next 2016-06-24 13:15:10 +10:00
rockchip drm/rockchip: Finish initialization before registering DRM device 2016-06-21 10:52:58 +02:00
savage
shmobile drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
sis drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
sti drm: sti: rework init sequence 2016-06-21 21:32:52 +02:00
sun4i drm/sun4i: Remove open-coded drm_connector_register_all() 2016-06-22 09:57:45 +02:00
tdfx
tegra drm: tegra: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:48 +02:00
tilcdc drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
ttm Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
udl drm/udl: use drm_crtc_send_vblank_event() 2016-06-06 18:03:06 +02:00
vc4 drm/vc4: Remove unused connector 2016-06-22 12:41:47 +02:00
vgem drm/vgem: Stop calling drm_drv_set_unique 2016-06-21 21:43:37 +02:00
via drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
virtio drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
vmwgfx drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
Kconfig drm/mediatek: Add DRM Driver for Mediatek SoC MT8173. 2016-05-06 17:47:35 +02:00
Makefile drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00
ati_pcigart.c
drm_agpsupport.c drm: Give drm_agp_clear drm_legacy_ prefix 2016-04-27 08:41:34 +02:00
drm_atomic.c drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_atomic_helper.c drm/atomic-helpers: Clear up cleanup_done a bit 2016-06-15 17:25:36 +02:00
drm_auth.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_bridge.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_bufs.c drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
drm_cache.c x86/cpufeature: Remove cpu_has_clflush 2016-03-31 13:35:09 +02:00
drm_context.c
drm_crtc.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_crtc_helper.c drm/crtc-helper: disable_unused_functions really isn't for atomic 2016-06-21 11:46:08 +02:00
drm_crtc_internal.h drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_debugfs.c drm: Nuke legacy maps debugfs files 2016-06-16 10:16:11 +02:00
drm_dma.c
drm_dp_aux_dev.c drm/dp: Allow signals to interrupt drm_aux-dev reads/writes 2016-04-28 11:48:09 +02:00
drm_dp_dual_mode_helper.c drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.c drm: Minimally initialise drm_dp_aux 2016-06-17 14:41:47 +02:00
drm_dp_mst_topology.c Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
drm_drv.c drm: Don't call drm_dev_set_unique from platform drivers 2016-06-21 21:43:41 +02:00
drm_edid.c drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_edid_load.c Fix annoyingly awkward typo in drm_edid_load.c 2016-05-30 09:59:28 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: fb: cma: fix memory leak 2016-06-13 09:53:09 +02:00
drm_fb_helper.c drm/fb-helper: Reduce READ_ONCE(master) to lockless_dereference 2016-06-22 10:07:28 +02:00
drm_flip_work.c
drm_fops.c drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_fourcc.c drm: Move format-related helpers to drm_fourcc.c 2016-06-09 11:58:50 +02:00
drm_gem.c drm/doc: Appease sphinx 2016-06-02 16:25:20 +02:00
drm_gem_cma_helper.c drm: Wrap direct calls to driver->gem_free_object from CMA 2016-06-01 15:00:28 +10:00
drm_global.c
drm_hashtab.c
drm_info.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_internal.h drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_ioc32.c
drm_ioctl.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_irq.c drm: fix send_vblank_event use-after-free error 2016-06-20 21:18:35 +02:00
drm_kms_helper_common.c
drm_legacy.h drm: Hide hw.lock cleanup in filp->release better 2016-06-16 10:16:37 +02:00
drm_lock.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_memory.c
drm_mipi_dsi.c drm/dsi: Add uevent callback 2016-06-13 10:45:57 +02:00
drm_mm.c drm/mm: avoid possible null pointer dereference 2016-05-23 14:56:11 +02:00
drm_modes.c Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
drm_modeset_lock.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_of.c
drm_panel.c drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pci.c drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_plane_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_platform.c drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
drm_prime.c drm/prime: fix error path deadlock fail 2016-06-13 17:32:18 +02:00
drm_probe_helper.c drm: Only create a cmdline mode if no probed modes match 2016-06-02 15:10:22 +02:00
drm_rect.c
drm_scatter.c
drm_simple_kms_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_sysfs.c drm: Remove dev_pm_ops from drm_class 2016-06-09 08:43:25 +02:00
drm_trace.h
drm_trace_points.c
drm_vm.c drm: Nuke legacy maps debugfs files 2016-06-16 10:16:11 +02:00
drm_vma_manager.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00