linux/arch/powerpc
Paul Mackerras 8b23de2948 KVM: PPC: Book3S PR: Make instruction fetch fallback work for system calls
It turns out that if we exit the guest due to a hcall instruction (sc 1),
and the loading of the instruction in the guest exit path fails for any
reason, the call to kvmppc_ld() in kvmppc_get_last_inst() fetches the
instruction after the hcall instruction rather than the hcall itself.
This in turn means that the instruction doesn't get recognized as an
hcall in kvmppc_handle_exit_pr() but gets passed to the guest kernel
as a sc instruction.  That usually results in the guest kernel getting
a return code of 38 (ENOSYS) from an hcall, which often triggers a
BUG_ON() or other failure.

This fixes the problem by adding a new variant of kvmppc_get_last_inst()
called kvmppc_get_last_sc(), which fetches the instruction if necessary
from pc - 4 rather than pc.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-08-28 16:47:49 +02:00
..
boot MMC highlights for 3.10: 2013-05-04 13:45:17 -07:00
configs USB: remove remaining instances of USB_SUSPEND 2013-05-15 13:44:44 -04:00
crypto powerpc: Fix compile of sha1-powerpc-asm.S on 32-bit 2013-03-05 16:56:26 +11:00
include KVM: PPC: Book3S PR: Make instruction fetch fallback work for system calls 2013-08-28 16:47:49 +02:00
kernel KVM: PPC: Book3S PR: Load up SPRG3 register with guest value on guest entry 2013-07-25 15:33:09 +02:00
kvm KVM: PPC: Book3S PR: Make instruction fetch fallback work for system calls 2013-08-28 16:47:49 +02:00
lib powerpc/pseries: Improve stream generation comments in copypage/user 2013-06-01 08:29:26 +10:00
math-emu
mm Merge 3.10-rc7 into driver-core-next 2013-06-24 15:14:43 -07:00
net filter: bpf_jit_comp: refactor and unify BPF JIT image dump output 2013-03-21 17:25:56 -04:00
oprofile Merge branch 'merge' into next 2013-01-29 11:33:37 +11:00
perf Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:15:23 -07:00
platforms The common clock framework changes for 3.11 include new clock drivers 2013-07-03 11:54:50 -07:00
sysdev powerpc/pci: Fix boot panic on mpc83xx (regression) 2013-06-24 16:54:09 -05:00
xmon Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-05-02 10:16:16 -07:00
Kconfig Finally eradicate CONFIG_HOTPLUG 2013-06-03 14:20:18 -07:00
Kconfig.debug powerpc: Add an in memory udbg console 2013-05-08 06:36:49 +10:00
Makefile powerpc: Avoid load of static chain register when calling nested functions through a pointer on 64bit 2013-01-10 17:01:27 +11:00
relocs_check.pl