]> git.hungrycats.org Git - linux/commit
xen/x86: don't lose event interrupts
authorStefano Stabellini <sstabellini@kernel.org>
Sat, 16 Apr 2016 01:23:00 +0000 (18:23 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 May 2017 05:44:08 +0000 (07:44 +0200)
commit9e853ef16c510d43de94675bca2f375b0adaf597
treec4ce3c05fc792db4e1b1ff7bf5cd9eb6b36dc0d9
parent5a877ce0a9fdc9bfea74d9dc4fc5efecf1fbf5d8
xen/x86: don't lose event interrupts

commit c06b6d70feb32d28f04ba37aa3df17973fd37b6b upstream.

On slow platforms with unreliable TSC, such as QEMU emulated machines,
it is possible for the kernel to request the next event in the past. In
that case, in the current implementation of xen_vcpuop_clockevent, we
simply return -ETIME. To be precise the Xen returns -ETIME and we pass
it on. However the result of this is a missed event, which simply causes
the kernel to hang.

Instead it is better to always ask the hypervisor for a timer event,
even if the timeout is in the past. That way there are no lost
interrupts and the kernel survives. To do that, remove the
VCPU_SSHOTTMR_future flag.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/xen/time.c