• Christophe Leroy's avatar
    powerpc: Support execute-only on all powerpc · b1fba034
    Christophe Leroy authored
    Introduce PAGE_EXECONLY_X macro which provides exec-only rights.
    The _X may be seen as redundant with the EXECONLY but it helps
    keep consistency, all macros having the EXEC right have _X.
    
    And put it next to PAGE_NONE as PAGE_EXECONLY_X is
    somehow PAGE_NONE + EXEC just like all other SOMETHING_X are
    just SOMETHING + EXEC.
    
    On book3s/64 PAGE_EXECONLY becomes PAGE_READONLY_X.
    
    On book3s/64, as PAGE_EXECONLY is only valid for Radix add
    VM_READ flag in vm_get_page_prot() for non-Radix.
    
    And update access_error() so that a non exec fault on a VM_EXEC only
    mapping is always invalid, even when the underlying layer don't
    always generate a fault for that.
    
    For 8xx, set PAGE_EXECONLY_X as _PAGE_NA | _PAGE_EXEC.
    For others, only set it as just _PAGE_EXEC
    
    With that change, 8xx, e500 and 44x fully honor execute-only
    protection.
    
    On 40x that is a partial implementation of execute-only. The
    implementation won't be complete because once a TLB has been loaded
    via the Instructi...
    b1fba034
pte-e500.h 3.44 KB