From: Ville Syrjälä Date: Wed, 6 Aug 2014 11:49:44 +0000 (+0300) Subject: drm: Always reject drm_vblank_get() after drm_vblank_off() X-Git-Tag: fixes-against-v3.18-rc2~73^2~39^2~22 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ffd7a68511c710b84db3548a1997fd2625f580a;p=pandora-kernel.git drm: Always reject drm_vblank_get() after drm_vblank_off() Make sure drm_vblank_get() never succeeds when called between drm_vblank_off() and drm_vblank_on(). Borrow a trick from the old drm_vblank_{pre,post}_modeset() functions and just bump the refcount in drm_vblank_off() and drop it in drm_vblank_on(). When drm_vblank_get() encounters a >0 refcount and the vblank interrupt is already disabled it will simply return -EINVAL. Hopefully the use of inmodeset won't conflict badly with drm_vblank_{pre,post}_modeset(). For i915 there's a window between drm_vblank_off() and marking the crtc as inactive where the current code still allows drm_vblank_get(). v2: Describe what drm_vblank_get() does to explain how a simple refcount bump manages to fix things (Daniel) Reviewed-by: Matt Roper Reviewed-by: Daniel Vetter Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter --- Reading git-diff-tree failed