summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/xen
diff options
context:
space:
mode:
authorShayenne Moura <shayenneluzmoura@gmail.com>2019-01-30 14:07:11 -0200
committerRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>2019-02-03 19:28:21 -0200
commitba420afab565bdc7b028ddd4f222260f2de7a1db (patch)
treefbbae8682d4108fb5ce2665938838d24c4d8b8bd /drivers/gpu/drm/xen
parentdef35e7c592616bc09be328de8795e5e624a3cf8 (diff)
downloadlinux-ba420afab565bdc7b028ddd4f222260f2de7a1db.tar.bz2
drm/vkms: Bugfix racing hrtimer vblank handle
When the vblank irq happens, kernel time subsystem executes `vkms_vblank_simulate`. In parallel or not, it prepares all stuff necessary to the next vblank with arm, and it must flush these stuff before the next vblank irq. However, vblank counter is ahead when arm is executed in parallel with handle vblank. CPU 0: CPU 1: | | atomic_commit_tail is ongoing | | | | hrtimer: vkms_vblank_simulate() | | | drm_crtc_handle_vblank() | | drm_crtc_arm_vblank() | | | ->get_vblank_timestamp() | | | | hrtimer_forward_now() Then, we should guarantee that the vblank interval time is correct (not changed) before finish the vblank handle. Fix the bug including the call to `hrtimer_forward_now()` in the same lock of `drm_crtc_handle_vblank()` to ensure that the timestamp update is correct when finish the vblank handle. Signed-off-by: Shayenne Moura <shayenneluzmoura@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/e2e4b8f3a5cab7b2dba75bf1930f86b0a4ee08c9.1548856186.git.shayenneluzmoura@gmail.com
Diffstat (limited to 'drivers/gpu/drm/xen')
0 files changed, 0 insertions, 0 deletions