Merge tag 'arm-vfp-refactor-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel...
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 27 Jun 2023 13:17:19 +0000 (14:17 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 27 Jun 2023 13:17:19 +0000 (14:17 +0100)
commit53ae158f6ddc14df5c44d62c06e33fdb66de1196
treed0d0485f5f614e0070bab6ff1b53d56aec7c2d8e
parentac9a78681b921877518763ba0e89202254349d1b
parent47ba5f39eab3c2a9a1ba878159a6050f2bbfc0e2
Merge tag 'arm-vfp-refactor-for-rmk' of git://git./linux/kernel/git/ardb/linux into devel-stable

Refactor VFP support code and reimplement in C

The VFP related changes to permit kernel mode NEON in softirq context
resulted in some issues regarding en/disabling of sofirqs from asm code,
and this made it clear that it would be better to handle more of it from
C code.

Given that we already have infrastructure that associates undefined
instruction exceptions with handler code based on value/mask pairs, we
can easily move the dispatch of VFP and NEON instructions to C code once
we reimplement the actual VFP support routine (which reasons about how
to deal with the exception and whether any emulation is needed) in C
code first.

With those out of the way, we can drop the partial decoding logic in asm
that reasons about which ISA is being used by user space, as the
remaining cases are all 32-bit ARM only. This leaves a FPE specific
routine with some iWMMXT logic that is easily duplicated in C as well,
allowing us to move the FPE asm code into the FPE asm source file, and
out of the shared entry code.