From: Dongxu Sun Date: Fri, 17 Mar 2023 12:49:13 +0000 (+0800) Subject: arm64/signal: Alloc tpidr2 sigframe after checking system_supports_tpidr2() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=19e99e7d59bc421373e82af818197576b1a3940f;p=linux.git arm64/signal: Alloc tpidr2 sigframe after checking system_supports_tpidr2() Move tpidr2 sigframe allocation from under the checking of system_supports_sme() to the checking of system_supports_tpidr2(). Signed-off-by: Dongxu Sun Reviewed-by: Mark Brown Link: https://lore.kernel.org/r/20230317124915.1263-3-sundongxu3@huawei.com Signed-off-by: Will Deacon --- diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 032e97f8cae0c..2cfc810d0a5b1 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -893,6 +893,13 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user, return err; } + if (system_supports_tpidr2()) { + err = sigframe_alloc(user, &user->tpidr2_offset, + sizeof(struct tpidr2_context)); + if (err) + return err; + } + if (system_supports_sme()) { unsigned int vl; unsigned int vq = 0; @@ -902,11 +909,6 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user, else vl = task_get_sme_vl(current); - err = sigframe_alloc(user, &user->tpidr2_offset, - sizeof(struct tpidr2_context)); - if (err) - return err; - if (thread_za_enabled(¤t->thread)) vq = sve_vq_from_vl(vl);