[RFC,tip] rseq: Fix: Increase AT_VECTOR_SIZE_BASE to match rseq auxvec entries

Message ID 20230104192054.34046-1-mathieu.desnoyers@efficios.com
State New
Headers
Series [RFC,tip] rseq: Fix: Increase AT_VECTOR_SIZE_BASE to match rseq auxvec entries |

Commit Message

Mathieu Desnoyers Jan. 4, 2023, 7:20 p.m. UTC
  Two new auxiliary vector entries are introduced for rseq without
matching increment of the AT_VECTOR_SIZE_BASE, which causes failures
with CONFIG_HARDENED_USERCOPY=y.

Reported-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/Y7XJKZhuU9VJZQ11@dev-arch.thelio-3990X
Fixes: 317c8194e6ae ("rseq: Introduce feature size and alignment ELF auxiliary vector entries")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
---
 include/linux/auxvec.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Nathan Chancellor Jan. 4, 2023, 7:24 p.m. UTC | #1
On Wed, Jan 04, 2023 at 02:20:54PM -0500, Mathieu Desnoyers wrote:
> Two new auxiliary vector entries are introduced for rseq without
> matching increment of the AT_VECTOR_SIZE_BASE, which causes failures
> with CONFIG_HARDENED_USERCOPY=y.
> 
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Link: https://lore.kernel.org/r/Y7XJKZhuU9VJZQ11@dev-arch.thelio-3990X
> Fixes: 317c8194e6ae ("rseq: Introduce feature size and alignment ELF auxiliary vector entries")
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

This resolves the boot failure with the configuration I tested:

Tested-by: Nathan Chancellor <nathan@kernel.org>

> ---
>  include/linux/auxvec.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/auxvec.h b/include/linux/auxvec.h
> index f68d0ec2d740..407f7005e6d6 100644
> --- a/include/linux/auxvec.h
> +++ b/include/linux/auxvec.h
> @@ -4,6 +4,6 @@
>  
>  #include <uapi/linux/auxvec.h>
>  
> -#define AT_VECTOR_SIZE_BASE 20 /* NEW_AUX_ENT entries in auxiliary table */
> +#define AT_VECTOR_SIZE_BASE 22 /* NEW_AUX_ENT entries in auxiliary table */
>    /* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */
>  #endif /* _LINUX_AUXVEC_H */
> -- 
> 2.25.1
>
  
Peter Zijlstra Jan. 11, 2023, 2:15 p.m. UTC | #2
On Wed, Jan 04, 2023 at 12:24:09PM -0700, Nathan Chancellor wrote:
> On Wed, Jan 04, 2023 at 02:20:54PM -0500, Mathieu Desnoyers wrote:
> > Two new auxiliary vector entries are introduced for rseq without
> > matching increment of the AT_VECTOR_SIZE_BASE, which causes failures
> > with CONFIG_HARDENED_USERCOPY=y.
> > 
> > Reported-by: Nathan Chancellor <nathan@kernel.org>
> > Link: https://lore.kernel.org/r/Y7XJKZhuU9VJZQ11@dev-arch.thelio-3990X
> > Fixes: 317c8194e6ae ("rseq: Introduce feature size and alignment ELF auxiliary vector entries")
> > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> 
> This resolves the boot failure with the configuration I tested:
> 
> Tested-by: Nathan Chancellor <nathan@kernel.org>

Thanks!
  

Patch

diff --git a/include/linux/auxvec.h b/include/linux/auxvec.h
index f68d0ec2d740..407f7005e6d6 100644
--- a/include/linux/auxvec.h
+++ b/include/linux/auxvec.h
@@ -4,6 +4,6 @@ 
 
 #include <uapi/linux/auxvec.h>
 
-#define AT_VECTOR_SIZE_BASE 20 /* NEW_AUX_ENT entries in auxiliary table */
+#define AT_VECTOR_SIZE_BASE 22 /* NEW_AUX_ENT entries in auxiliary table */
   /* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */
 #endif /* _LINUX_AUXVEC_H */