On Fri, Jan 8, 2016 at 9:46 AM, Inki Dae inki.dae@samsung.com wrote:
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
Changelog v3:
- initialize only device specific things. Each page flip event object is created by DRM core so DRM core should release the object including incrementing event space.
Signed-off-by: Inki Dae inki.dae@samsung.com Reviewed-by: Daniel Stone daniels@collabora.com
Note that after my drm_event cleanup series has landed (aiming for early 4.6) you can/should revert this again. But it's too big as a bugfix this late in 4.5. Ack/tested-by from exynos on that series would be great. -Daniel