lguest: workaround cmpxchg8b_emu by ignoring cli in the guest.
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 15 Apr 2010 03:43:53 +0000 (21:43 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 14 Apr 2010 12:13:54 +0000 (21:43 +0930)
commit5094aeafbbd500509f648e3cd102b053bc7926b3
tree8effa3dcde7c1b34ced9f09c7964acbcd8eb49f1
parent2ba3abd8186f24c7fb418927025b4e2120e3a362
lguest: workaround cmpxchg8b_emu by ignoring cli in the guest.

It's only used by cmpxchg8b_emu (see db677ffa5f5a for the gory
details), and fixing that to be paravirt aware would be more work than
simply ignoring it (and AFAICT only help lguest).  This makes lguest
work on machines which have cmpxchg8b, for kernels compiled for older
processors.

(We can't emulate it properly: the popf which expects to restore interrupts
does not trap).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: virtualization@lists.osdl.org
drivers/lguest/x86/core.c