kernel-fxtec-pro1x/arch/powerpc
Paul Mackerras 7ed661bf85 KVM: PPC: Book3S HV: Restructure HPT entry creation code
This restructures the code that creates HPT (hashed page table)
entries so that it can be called in situations where we don't have a
struct vcpu pointer, only a struct kvm pointer.  It also fixes a bug
where kvmppc_map_vrma() would corrupt the guest R4 value.

Most of the work of kvmppc_virtmode_h_enter is now done by a new
function, kvmppc_virtmode_do_h_enter, which itself calls another new
function, kvmppc_do_h_enter, which contains most of the old
kvmppc_h_enter.  The new kvmppc_do_h_enter takes explicit arguments
for the place to return the HPTE index, the Linux page tables to use,
and whether it is being called in real mode, thus removing the need
for it to have the vcpu as an argument.

Currently kvmppc_map_vrma creates the VRMA (virtual real mode area)
HPTEs by calling kvmppc_virtmode_h_enter, which is designed primarily
to handle H_ENTER hcalls from the guest that need to pin a page of
memory.  Since H_ENTER returns the index of the created HPTE in R4,
kvmppc_virtmode_h_enter updates the guest R4, corrupting the guest R4
in the case when it gets called from kvmppc_map_vrma on the first
VCPU_RUN ioctl.  With this, kvmppc_map_vrma instead calls
kvmppc_virtmode_do_h_enter with the address of a dummy word as the
place to store the HPTE index, thus avoiding corrupting the guest R4.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2012-12-06 01:33:52 +01:00
..
boot Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-10-06 03:16:12 +09:00
configs UAPI Disintegration 2012-10-09 2012-10-09 15:04:25 +01:00
include KVM: PPC: Book3S HV: Restructure HPT entry creation code 2012-12-06 01:33:52 +01:00
kernel Merge commit 'origin/queue' into for-queue 2012-10-31 13:36:18 +01:00
kvm KVM: PPC: Book3S HV: Restructure HPT entry creation code 2012-12-06 01:33:52 +01:00
lib powerpc: Fix VMX fix for memcpy case 2012-10-04 18:02:43 +10:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm readahead: fault retry breaks mmap file read random detection 2012-10-09 16:22:47 +09:00
net powerpc: Start using ___PPC_RA/B/S/T where necessary 2012-07-10 19:18:25 +10:00
oprofile mm: use mm->exe_file instead of first VM_EXECUTABLE vma->vm_file 2012-10-09 16:22:18 +09:00
perf Revert "powerpc/perf: Use pmc_overflow() to detect rolled back events" 2012-10-18 10:36:11 +11:00
platforms Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
sysdev Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
xmon powerpc: Add an xmon command to dump one or all pacas 2012-09-18 15:02:36 +10:00
Kconfig Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-14 13:39:34 -07:00
Kconfig.debug powerpc: IOMMU fault injection 2012-07-10 19:18:59 +10:00
Makefile crypto: nx - move nx build to driver/crypto Makefile 2012-06-27 14:42:00 +08:00
relocs_check.pl powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00