Subject: [PATCH 1/3] arm64: move the PTE_VALID to pgtable-hwdef.h

From: [email-masked] (Will Deacon)
Date: Thu, 2 Jun 2016 19:16:09 +0100

On Mon, May 30, 2016 at 10:14:26AM +0800, Huang Shijie wrote:
> The PTE_VALID is used to check whether the page descriptor is valid.
> It's not a software defined PTE bits, such as PTE_WRITE/PTE_DIRTY.
> 
> So move it to the proper header file: pgtable-hwdef.h.
> 
> Signed-off-by: Huang Shijie <[email-masked]>
> ---
>  arch/arm64/include/asm/pgtable-hwdef.h | 1 +
>  arch/arm64/include/asm/pgtable-prot.h  | 1 -
>  2 files changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h
> index 2813748..eeb3269 100644
> --- a/arch/arm64/include/asm/pgtable-hwdef.h
> +++ b/arch/arm64/include/asm/pgtable-hwdef.h
> @@ -154,6 +154,7 @@
>  #define PTE_TYPE_MASK		(_AT(pteval_t, 3) << 0)
>  #define PTE_TYPE_FAULT		(_AT(pteval_t, 0) << 0)
>  #define PTE_TYPE_PAGE		(_AT(pteval_t, 3) << 0)
> +#define PTE_VALID		(_AT(pteval_t, 1) << 0)
>  #define PTE_TABLE_BIT		(_AT(pteval_t, 1) << 1)
>  #define PTE_USER		(_AT(pteval_t, 1) << 6)		/* AP[1] */
>  #define PTE_RDONLY		(_AT(pteval_t, 1) << 7)		/* AP[2] */
> diff --git a/arch/arm64/include/asm/pgtable-prot.h b/arch/arm64/include/asm/pgtable-prot.h
> index 29fcb33..5ac71f4 100644
> --- a/arch/arm64/include/asm/pgtable-prot.h
> +++ b/arch/arm64/include/asm/pgtable-prot.h
> @@ -24,7 +24,6 @@
>  /*
>   * Software defined PTE bits definition.
>   */
> -#define PTE_VALID		(_AT(pteval_t, 1) << 0)
>  #define PTE_WRITE		(PTE_DBM)		 /* same as DBM (51) */

So how would you define PTE_WRITE? It's a software bit in v8.0 and a
hardware bit in v8.1 ;)

I don't mind shuffling the #defines about, I just think the boundaries
are somewhat blurred and maybe it's a mistake to put software bits and
hardware bits in separate headers.

Will