• Paul Mackerras's avatar
    KVM: PPC: Book3S: Make kvmppc_ld return a more accurate error indication · 1b2e33b0
    Paul Mackerras authored
    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: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    1b2e33b0
book3s.c 24.1 KB