]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arm64/fpsimd: signal: Simplify preserve_tpidr2_context()
authorMark Rutland <mark.rutland@arm.com>
Wed, 9 Apr 2025 16:40:10 +0000 (17:40 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 9 Apr 2025 17:06:31 +0000 (18:06 +0100)
commit2fe2b96c3818a043eb013a9db1885de75987715d
tree292879052acbc48ff2cf32b6d4ab6f7ef611f887
parent929fa99b1215966fc8a6ccc2e14b92e36c3c42f3
arm64/fpsimd: signal: Simplify preserve_tpidr2_context()

During a context-switch, tls_thread_switch() reads and writes a task's
thread_struct::tpidr2_el0 field. Other code shouldn't access this field
for an active task, as such accesses would form a data-race with a
concurrent context-switch.

The usage in preserve_tpidr2_context() is suspicious, but benign as any
race with a context switch will write the same value back to
current->thread.tpidr2_el0.

Make this clearer and match restore_tpidr2_context() by using a
temporary variable instead, avoiding the (benign) data-race.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20250409164010.3480271-14-mark.rutland@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/signal.c