linux/drivers/gpu/drm/exynos
Inki Dae c74d8eb564 drm/exynos: fix kernel panic issue at drm releasing
This patch fixes a kernel panic issue which happened
when drm driver is closed while modetest.

This issue could be reproduced easily by launching modetest
with page flip repeatedly.

The reason is that invalid drm_file object could be accessed by
send_vblank_event function when finishing page flip if the drm_file
object was removed by drm_release and there was a pended page
flip event which was already committed to hardware.

So this patch makes the pended page flip event to be cancelled by
preclose callback which is called at front of drm_release function.

Changelog v2:
- free vblank event objects belonging to the request process,
  increment event space and decrease pending_update when cancelling
  the event

Signed-off-by: Inki Dae <inki.dae@samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
2016-01-13 00:16:39 +09:00
..
Kconfig drm/exynos: gsc: add device tree support and remove usage of static mappings 2015-12-13 22:22:53 +09:00
Makefile drm/exynos: separate Mixer and HDMI drivers 2015-11-03 11:46:38 +09:00
exynos7_drm_decon.c drm/exynos: crtc: rework atomic_{begin,flush} 2016-01-13 00:16:37 +09:00
exynos5433_drm_decon.c drm/exynos: crtc: rework atomic_{begin,flush} 2016-01-13 00:16:37 +09:00
exynos_dp_core.c drm/exynos: Constify function pointer structs 2015-12-15 13:44:56 +01:00
exynos_dp_core.h drm/exynos: do not start enabling DP at bind() phase 2015-12-13 22:22:43 +09:00
exynos_dp_reg.c drm/exynos: Fix checkpatch warning in exynos_dp_reg.c 2014-06-02 02:07:12 +09:00
exynos_dp_reg.h drm/exynos: Move dp driver from video/ to drm/ 2014-03-24 00:36:34 +09:00
exynos_drm_core.c drm/exynos: Remove useless EXPORT_SYMBOL_GPLs 2015-09-30 16:39:41 +09:00
exynos_drm_crtc.c drm/exynos: fix kernel panic issue at drm releasing 2016-01-13 00:16:39 +09:00
exynos_drm_crtc.h drm/exynos: fix kernel panic issue at drm releasing 2016-01-13 00:16:39 +09:00
exynos_drm_dpi.c drm/exynos: Constify function pointer structs 2015-12-15 13:44:56 +01:00
exynos_drm_drv.c drm/exynos: fix kernel panic issue at drm releasing 2016-01-13 00:16:39 +09:00
exynos_drm_drv.h drm/exynos: crtc: rework atomic_{begin,flush} 2016-01-13 00:16:37 +09:00
exynos_drm_dsi.c drm/exynos: Constify function pointer structs 2015-12-15 13:44:56 +01:00
exynos_drm_fb.c drm/exynos: crtc: do not wait for the scanout completion 2016-01-13 00:16:38 +09:00
exynos_drm_fb.h drm/exynos: move dma_addr attribute from exynos plane to exynos fb 2015-12-13 22:22:54 +09:00
exynos_drm_fbdev.c drm/exynos: cleanup name of gem object for exynos_drm 2015-10-26 15:10:34 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm/exynos: fix spelling errors 2015-10-26 15:10:17 +09:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: crtc: rework atomic_{begin,flush} 2016-01-13 00:16:37 +09:00
exynos_drm_g2d.c drm/exynos: Remove useless EXPORT_SYMBOL_GPLs 2015-09-30 16:39:41 +09:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm/exynos/gem: remove DMA-mapping hacks used for constructing page array 2015-11-03 11:46:39 +09:00
exynos_drm_gem.h drm/exynos: gem: remove old unused prototypes 2015-12-13 22:22:59 +09:00
exynos_drm_gsc.c drm/exynos: gsc: add device tree support and remove usage of static mappings 2015-12-13 22:22:53 +09:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_iommu.c drm/exynos: fix to detach device of iommu 2015-10-26 15:10:30 +09:00
exynos_drm_iommu.h drm/exynos: remove drm_iommu_attach_device_if_possible 2015-08-16 10:23:33 +09:00
exynos_drm_ipp.c drm/exynos: remove unnecessary checking to support iommu 2015-08-16 10:23:32 +09:00
exynos_drm_ipp.h drm/exynos/ipp: remove unused field in command node 2014-09-20 00:56:10 +09:00
exynos_drm_mic.c drm/exynos: Constify function pointer structs 2015-12-15 13:44:56 +01:00
exynos_drm_plane.c drm/exynos: make zpos property configurable 2016-01-13 00:16:34 +09:00
exynos_drm_plane.h drm/exynos: rename zpos to index 2016-01-13 00:16:33 +09:00
exynos_drm_rotator.c drm/exynos: rotator: convert to common clock framework 2015-12-13 22:22:53 +09:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm/exynos: rename zpos to index 2016-01-13 00:16:33 +09:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos: Constify function pointer structs 2015-12-15 13:44:56 +01:00
exynos_mixer.c drm/exynos: mixer: properly update all planes on the same vblank event 2016-01-13 00:16:37 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h drm/exynos: gsc: add device tree support and remove usage of static mappings 2015-12-13 22:22:53 +09:00
regs-hdmi.h drm/exynos/hdmi: improve HDMI/ACR related code 2015-10-26 15:10:04 +09:00
regs-mixer.h drm/exynos: mixer: refactor layer setup 2016-01-13 00:16:36 +09:00
regs-rotator.h drm/exynos: add rotator ipp driver 2012-12-15 02:39:41 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00