diff options
author | Paul Mackerras | 2014-07-19 17:59:36 +1000 |
---|---|---|
committer | Alexander Graf | 2014-07-28 15:23:16 +0200 |
commit | 1b2e33b071b13980a1f0823fbf139242059697b4 (patch) | |
tree | b0fa41220231de99d8ceea2298ac29e009659043 /virt | |
parent | ef1af2e29622ff3403926ae801a2b10da075a2de (diff) |
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>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions