xen/events: Handle VIRQ_TIMER before any other hardirq in event loop.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 28 Mar 2013 14:03:36 +0000 (10:03 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Jun 2013 19:49:34 +0000 (12:49 -0700)
commite3f7e71f94234a4b10265e644d5e01d5c8ff7880
treeb02e4d46287b2fd69d662fb7eb204f8aa14376a5
parent8cfd67a3d001f8f7428c5455b69e177fa8aa31b1
xen/events: Handle VIRQ_TIMER before any other hardirq in event loop.

commit bee980d9e9642e96351fa3ca9077b853ecf62f57 upstream.

This avoids any other hardirq handler seeing a very stale jiffies
value immediately after wakeup from a long idle period. The one
observable symptom of this was a USB keyboard, with software keyboard
repeat, which would always repeat a key immediately that it was
pressed. This is due to the key press waking the guest, the key
handler immediately runs, sees an old jiffies value, and then that
jiffies value significantly updated, before the key is unpressed.

Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/xen/events.c