linux-next/arch/arm/vfp
Sebastian Andrzej Siewior f26bdbe1fa ARM: 9423/1: vfp: Provide vfp_state_hold() for VFP locking.
kernel_neon_begin() uses local_bh_disable() to ensure exclusive access
to the VFP unit. This is broken on PREEMPT_RT because a BH disabled
section remains preemptible on PREEMPT_RT.

Introduce vfp_state_hold() which uses local_bh_disable() and
preempt_disable() on PREEMPT_RT. Since softirqs are processed always in
thread context, disabling preemption is enough to ensure that the
current context won't get interrupted by something that is using the
VFP. Use it in kernel_neon_begin().

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2024-11-12 16:41:46 +00:00
..
Makefile ARM: vfp: Use undef hook for handling VFP exceptions 2023-05-17 15:08:22 +02:00
vfp.h ARM: vfp: Reimplement VFP exception entry in C code 2023-05-17 15:08:14 +02:00
vfpdouble.c ARM: 8026/1: Fix emulation of multiply accumulate instructions 2014-04-14 23:28:24 +01:00
vfphw.S ARM: vfp: Reimplement VFP exception entry in C code 2023-05-17 15:08:14 +02:00
vfpinstr.h ARM: 9410/1: vfp: Use asm volatile in fmrx/fmxr macros 2024-08-20 11:18:47 +01:00
vfpmodule.c ARM: 9423/1: vfp: Provide vfp_state_hold() for VFP locking. 2024-11-12 16:41:46 +00:00
vfpsingle.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00