linux/arch/x86
Avi Kivity 33e3885de2 KVM: x86 emulator: fix hypercall return value on AMD
The hypercall instructions on Intel and AMD are different.  KVM allows the
guest to choose one or the other (the default is Intel), and if the guest
chooses incorrectly, KVM will patch it at runtime to select the correct
instruction.  This allows live migration between Intel and AMD machines.

This patching occurs in the x86 emulator.  The current code also executes
the hypercall.  Unfortunately, the tail end of the x86 emulator code also
executes, overwriting the return value of the hypercall with the original
contents of rax (which happens to be the hypercall number).

Fix not by executing the hypercall in the emulator context; instead let the
guest reissue the patched instruction and execute the hypercall via the
normal path.

Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-06-06 21:08:25 +03:00
..
boot x86: fix integer as NULL pointer warning 2008-05-23 08:11:06 -07:00
configs
crypto
ia32
kernel x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack 2008-06-04 16:21:24 +02:00
kvm KVM: x86 emulator: fix hypercall return value on AMD 2008-06-06 21:08:25 +03:00
lguest lguest: fix ugly <NULL> in /proc/interrupts 2008-05-30 15:09:43 +10:00
lib x86: enable preemption in delay 2008-06-04 13:11:46 +02:00
mach-default
mach-es7000
mach-generic
mach-rdc321x
mach-visws
mach-voyager
math-emu x86: fix broken math-emu with lazy allocation of fpu area 2008-06-04 13:11:46 +02:00
mm x86: section mismatch fix 2008-06-04 13:11:47 +02:00
oprofile
pci PCI: Correct last two HP entries in the bfsort whitelist 2008-05-19 12:21:36 -07:00
power
vdso x86: use explicit copy in vdso_gettimeofday() 2008-05-23 14:08:06 +02:00
video x86: video/fbdev.c: add MODULE_LICENSE 2008-05-04 20:04:46 +02:00
xen x86/xen: fix arbitrary_virt_to_machine() 2008-05-23 14:08:06 +02:00
Kconfig Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST 2008-05-25 23:03:18 +02:00
Kconfig.cpu
Kconfig.debug x86: fix CONFIG_NONPROMISC_DEVMEM prompt and help text 2008-06-05 14:21:45 -07:00
Makefile
Makefile_32.cpu