arm64/ptrace: Use system_supports_tpidr2() to check for TPIDR2 support
authorMark Brown <broonie@kernel.org>
Tue, 27 Dec 2022 13:01:08 +0000 (13:01 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 12 Jan 2023 16:06:45 +0000 (16:06 +0000)
We have a separate system_supports_tpidr2() to check for TPIDR2 support
but were using system_supports_sme() in tls_set(). While these are
currently identical let's use the specific check instead so we don't have
any surprises in future.

Reported-by: Will Deacon <will@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221208-arm64-tpidr2-ptrace-feat-v2-1-3760c895a574@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/ptrace.c

index 2686ab15760173d1dc11805f579daf4d7e563ba5..33d985bb27070cc8e2604c9b49739181670125ad 100644 (file)
@@ -683,7 +683,7 @@ static int tls_set(struct task_struct *target, const struct user_regset *regset,
        unsigned long tls[2];
 
        tls[0] = target->thread.uw.tp_value;
-       if (system_supports_sme())
+       if (system_supports_tpidr2())
                tls[1] = target->thread.tpidr2_el0;
 
        ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, tls, 0, count);
@@ -691,7 +691,7 @@ static int tls_set(struct task_struct *target, const struct user_regset *regset,
                return ret;
 
        target->thread.uw.tp_value = tls[0];
-       if (system_supports_sme())
+       if (system_supports_tpidr2())
                target->thread.tpidr2_el0 = tls[1];
 
        return ret;