On 9/27/23 07:01, Joey Gouly wrote:
> -#ifdef CONFIG_ARCH_HAS_PKEYS
> +#if defined(CONFIG_ARCH_HAS_PKEYS) && !defined(CONFIG_ARM64)
>  # define VM_PKEY_SHIFT       VM_HIGH_ARCH_BIT_0
>  # define VM_PKEY_BIT0        VM_HIGH_ARCH_0  /* A protection key is a 4-bit 
> value */
>  # define VM_PKEY_BIT1        VM_HIGH_ARCH_1  /* on x86 and 5-bit value on 
> ppc64   */
> @@ -341,6 +341,15 @@ extern unsigned int kobjsize(const void *objp);
>  #endif
>  #endif /* CONFIG_ARCH_HAS_PKEYS */
>  
> +#if defined(CONFIG_ARM64)
> +# define VM_PKEY_SHIFT       VM_HIGH_ARCH_BIT_2
> +# define VM_PKEY_BIT0        VM_HIGH_ARCH_2  /* A protection key is a 3-bit 
> value on arm64 */
> +# define VM_PKEY_BIT1        VM_HIGH_ARCH_3
> +# define VM_PKEY_BIT2        VM_HIGH_ARCH_4
> +# define VM_PKEY_BIT3        0
> +# define VM_PKEY_BIT4        0
> +#endif

This might be a bit cleaner to just defer out to a per-arch header.  It
made sense for ppc and x86 to share their copy in here, but now that a
third one is around we should probably move this to actual arch/ code.

Reply via email to