linux/arch/powerpc
Paul Mackerras 1b2e33b071 KVM: PPC: Book3S: Make kvmppc_ld return a more accurate error indication
At present, kvmppc_ld calls kvmppc_xlate, and if kvmppc_xlate returns
any error indication, it returns -ENOENT, which is taken to mean an
HPTE not found error.  However, the error could have been a segment
found (no SLB entry) or a permission error.  Similarly,
kvmppc_pte_to_hva currently does permission checking, but any error
from it is taken by kvmppc_ld to mean that the access is an emulated
MMIO access.  Also, kvmppc_ld does no execute permission checking.

This fixes these problems by (a) returning any error from kvmppc_xlate
directly, (b) moving the permission check from kvmppc_pte_to_hva
into kvmppc_ld, and (c) adding an execute permission check to kvmppc_ld.

This is similar to what was done for kvmppc_st() by commit 82ff911317c3
("KVM: PPC: Deflect page write faults properly in kvmppc_st").

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-07-28 15:23:16 +02:00
..
boot Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-06-12 21:23:38 -07:00
configs KVM: PPC: Remove 440 support 2014-07-28 15:23:15 +02: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: Fix LPCR one_reg interface 2014-07-28 15:23:16 +02:00
kernel kvm: ppc: bookehv: Save restore SPRN_SPRG9 on guest entry exit 2014-07-28 15:23:14 +02:00
kvm KVM: PPC: Book3S: Make kvmppc_ld return a more accurate error indication 2014-07-28 15:23:16 +02:00
lib powerpc: fix typo 'CONFIG_PPC_CPU' 2014-06-11 17:04:25 +10:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
net net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
oprofile cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
perf powerpc/perf/hv-24x7: Catalog version number is be64, not be32 2014-04-28 16:31:50 +10:00
platforms powerpc/eeh: Dump PE location code 2014-06-11 19:12:23 +10:00
sysdev Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-12 20:11:38 -07:00
xmon powerpc/xmon: avoid format string leaking to printk 2014-06-11 17:04:03 +10:00
Kconfig powerpc/numa: Enable CONFIG_HAVE_MEMORYLESS_NODES 2014-05-28 13:35:34 +10:00
Kconfig.debug KVM: PPC: Remove 440 support 2014-07-28 15:23:15 +02:00
Makefile Merge branch 'merge' into next 2014-05-28 13:30:12 +10:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00