Re: [PATCH] x86/uapi: fix SHADOW_STACK_SET_TOKEN type

From: Edgecombe, Rick P
Date: Mon Oct 23 2023 - 12:37:49 EST


On Mon, 2023-10-23 at 01:21 +0300, Dmitry V. Levin wrote:
> Fix the type of SHADOW_STACK_SET_TOKEN to match the type of the
> corresponding "flags" argument of map_shadow_stack syscall which
> is of type "unsigned int".
>
> Fixes: c35559f94ebc3 ("x86/shstk: Introduce map_shadow_stack
> syscall")
> Signed-off-by: Dmitry V. Levin <ldv@xxxxxxxxx>
> ---
>  arch/x86/include/uapi/asm/mman.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/uapi/asm/mman.h
> b/arch/x86/include/uapi/asm/mman.h
> index 46cdc941f958..8419e25bb617 100644
> --- a/arch/x86/include/uapi/asm/mman.h
> +++ b/arch/x86/include/uapi/asm/mman.h
> @@ -6,7 +6,7 @@
>  #define MAP_ABOVE4G    0x80            /* only map above 4GB */
>  
>  /* Flags for map_shadow_stack(2) */
> -#define SHADOW_STACK_SET_TOKEN (1ULL << 0)     /* Set up a restore
> token in the shadow stack */
> +#define SHADOW_STACK_SET_TOKEN (1U << 0)       /* Set up a restore
> token in the shadow stack */
>  
>  #include <asm-generic/mman.h>

Good point that they are mismatched. I don't remember why flags is not
an unsigned long though. I wonder if we should quick change it to an
unsigned long, if it's not too late. We probably won't run out of
flags, but maybe some value could get stuffed in the upper bits or
something someday.