arm64: fpsimd: Bring cond_yield asm macro in line with new rules
authorArd Biesheuvel <ardb@kernel.org>
Thu, 11 Jan 2024 11:24:48 +0000 (12:24 +0100)
committerWill Deacon <will@kernel.org>
Fri, 12 Jan 2024 12:48:27 +0000 (12:48 +0000)
commit3931261ecf46151a5e779c96fb3da00677b6dc37
treea66aef908d4546b826c5f63fe461283f0018932a
parent8c5a19cb17a71e52303150335b459c7d2d28a155
arm64: fpsimd: Bring cond_yield asm macro in line with new rules

We no longer disable softirqs or preemption when doing kernel mode SIMD,
and so for fully preemptible kernels, there is no longer a need to do any
explicit yielding (and for non-preemptible kernels, yielding is not
needed either).

That leaves voluntary preemption, where only explicit yield calls may
result in a reschedule. To retain the existing behavior for such a
configuration, we should take the new situation into account, where the
preempt count will be zero rather than one, and yielding to pending
softirqs is unnecessary.

Fixes: aefbab8e77eb ("arm64: fpsimd: Preserve/restore kernel mode NEON at context switch")
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20240111112447.577640-2-ardb+git@google.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/assembler.h
arch/arm64/kernel/asm-offsets.c