Merge branches 'for-next/tpidr2' and 'for-next/sme2' into for-next/signal
authorCatalin Marinas <catalin.marinas@arm.com>
Wed, 1 Feb 2023 17:55:29 +0000 (17:55 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 1 Feb 2023 17:55:29 +0000 (17:55 +0000)
Patches on this branch depend on the branches merged above.

1  2 
Documentation/arm64/sme.rst
arch/arm64/include/uapi/asm/sigcontext.h
arch/arm64/kernel/signal.c
tools/testing/selftests/arm64/signal/.gitignore
tools/testing/selftests/arm64/signal/testcases/testcases.c

Simple merge
@@@ -56,8 -56,8 +56,9 @@@ struct rt_sigframe_user_layout 
        unsigned long fpsimd_offset;
        unsigned long esr_offset;
        unsigned long sve_offset;
 +      unsigned long tpidr2_offset;
        unsigned long za_offset;
+       unsigned long zt_offset;
        unsigned long extra_offset;
        unsigned long end_offset;
  };
@@@ -221,8 -221,8 +222,9 @@@ static int restore_fpsimd_context(struc
  struct user_ctxs {
        struct fpsimd_context __user *fpsimd;
        struct sve_context __user *sve;
 +      struct tpidr2_context __user *tpidr2;
        struct za_context __user *za;
+       struct zt_context __user *zt;
  };
  
  #ifdef CONFIG_ARM64_SVE
@@@ -478,10 -520,10 +548,12 @@@ static int restore_zt_context(struct us
  #else /* ! CONFIG_ARM64_SME */
  
  /* Turn any non-optimised out attempts to use these into a link error: */
 +extern int preserve_tpidr2_context(void __user *ctx);
 +extern int restore_tpidr2_context(struct user_ctxs *user);
  extern int preserve_za_context(void __user *ctx);
  extern int restore_za_context(struct user_ctxs *user);
+ extern int preserve_zt_context(void __user *ctx);
+ extern int restore_zt_context(struct user_ctxs *user);
  
  #endif /* ! CONFIG_ARM64_SME */
  
@@@ -498,8 -540,8 +570,9 @@@ static int parse_user_sigframe(struct u
  
        user->fpsimd = NULL;
        user->sve = NULL;
 +      user->tpidr2 = NULL;
        user->za = NULL;
+       user->zt = NULL;
  
        if (!IS_ALIGNED((unsigned long)base, 16))
                goto invalid;