Paul Mackerras <pau...@samba.org> writes:

> This moves the _PAGE_EXEC, _PAGE_RW and _PAGE_USER bits around in
> the Linux PTE on 64-bit Book 3S systems to correspond with the bit
> positions used in radix mode by PowerISA v3.0 CPUs.  This also adds
> a _PAGE_READ bit corresponding to the read permission bit in the
> radix PTE.  _PAGE_READ is currently unused but could possibly be used
> in future to improve pte_protnone().
>
> Signed-off-by: Paul Mackerras <pau...@samba.org>
> ---
>  arch/powerpc/include/asm/book3s/64/hash.h | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/hash.h 
> b/arch/powerpc/include/asm/book3s/64/hash.h
> index c8eba0e..0fc750c 100644
> --- a/arch/powerpc/include/asm/book3s/64/hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/hash.h
> @@ -13,9 +13,12 @@
>   * We could create separate kernel read-only if we used the 3 PP bits
>   * combinations that newer processors provide but we currently don't.
>   */
> -#define _PAGE_BIT_SWAP_TYPE  2
> -#define _PAGE_USER           0x00004 /* page may be accessed by userspace */
> -#define _PAGE_EXEC           0x00008 /* execute permission */
> +#define _PAGE_BIT_SWAP_TYPE  0
> +
> +#define _PAGE_EXEC           0x00001 /* execute permission */
> +#define _PAGE_RW             0x00002 /* read & write access allowed */
> +#define _PAGE_READ           0x00004 /* read access allowed */
> +#define _PAGE_USER           0x00008 /* page may be accessed by userspace */
>  #define _PAGE_GUARDED                0x00010 /* G: guarded (side-effect) 
> page */
>  /* M (memory coherence) is always set in the HPTE, so we don't need it here 
> */
>  #define _PAGE_COHERENT               0x0
> @@ -23,7 +26,6 @@
>  #define _PAGE_WRITETHRU              0x00040 /* W: cache write-through */
>  #define _PAGE_DIRTY          0x00080 /* C: page changed */
>  #define _PAGE_ACCESSED               0x00100 /* R: page referenced */
> -#define _PAGE_RW             0x00200 /* software: user write access allowed 
> */
>  #define _PAGE_BUSY           0x00800 /* software: PTE & hash are busy */
>  #define _PAGE_SPECIAL                0x10000 /* software: special page */
>


For radix, _PAGE_USER is the inverse of this right ?. Ie, we set that
bit position to 1 to indicate privileged access only.

Also can you use constants like
#define _PAGE_USER PPC_BIT(60)

-aneesh

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to