WSL2-Linux-Kernel/arch/arm
Ard Biesheuvel 73c132c15d ARM: add support for kernel mode NEON
In order to safely support the use of NEON instructions in
kernel mode, some precautions need to be taken:
- the userland context that may be present in the registers (even
  if the NEON/VFP is currently disabled) must be stored under the
  correct task (which may not be 'current' in the UP case),
- to avoid having to keep track of additional vfpstates for the
  kernel side, disallow the use of NEON in interrupt context
  and run with preemption disabled,
- after use, re-enable preemption and re-enable the lazy restore
  machinery by disabling the NEON/VFP unit.

This patch adds the functions kernel_neon_begin() and
kernel_neon_end() which take care of the above. It also adds
the Kconfig symbol KERNEL_MODE_NEON to enable it.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
2013-07-08 22:08:51 +01:00
..
boot ARM: SoC fixes for 3.10-rc 2013-06-22 09:44:45 -10:00
common Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-05-15 13:37:54 -07:00
configs ARM: Exynos fixes for 3.10-rc 2013-05-29 19:24:55 +09:00
crypto ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling 2013-05-22 22:01:35 +01:00
include ARM: add support for kernel mode NEON 2013-07-08 22:08:51 +01:00
kernel ARM: dt: Only print warning, not WARN() on bad cpu map in device tree 2013-06-29 17:00:40 -07:00
kvm ARM: KVM: be more thorough when invalidating TLBs 2013-06-03 10:58:56 +03:00
lib
mach-at91 ARM: at91/sama5: fix incorrect PMC pcr div definition 2013-05-24 10:53:51 +02:00
mach-bcm ARM: platform specific firmware interfaces for 3.10 2013-05-04 12:33:36 -07:00
mach-bcm2835
mach-clps711x
mach-cns3xxx ARM: arm-soc multiplatform updates for 3.10 2013-05-02 09:38:16 -07:00
mach-davinci ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
mach-dove
mach-ebsa110
mach-ep93xx
mach-exynos ARM: exynos: add debug_ll_io_init() call in exynos_init_io() 2013-06-07 18:12:00 -07:00
mach-footbridge
mach-gemini ARM: arm-soc cleanup for 3.10 2013-05-02 09:03:55 -07:00
mach-highbank ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
mach-imx ARM: imx: clk-imx6q: AXI clock select index is incorrect 2013-06-03 13:47:12 +08:00
mach-integrator ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-kirkwood ARM: Kirkwood: handle mv88f6282 cpu in __kirkwood_variant(). 2013-06-06 18:16:04 +00:00
mach-ks8695
mach-lpc32xx
mach-mmp ARM: arm-soc board specific changes for 3.10, part 1 2013-05-04 12:34:30 -07:00
mach-msm proc: Use PDE attribute setting accessor functions 2013-05-07 15:01:11 -04:00
mach-mv78xx0
mach-mvebu ARM: mvebu: Fix bug in coherency fabric low level init function 2013-05-28 14:50:08 +00:00
mach-mxs ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
mach-netx
mach-nomadik clocksource: nomadik-mtu: fix up clocksource/timer 2013-04-26 17:10:46 -07:00
mach-omap1 ARM: OMAP: fix error return code in omap1_system_dma_init() 2013-05-16 11:25:07 -07:00
mach-omap2 More OMAP hwmod and clock fixes for v3.10-rc. Fixes the AM33xx UART2. 2013-06-07 15:06:18 -07:00
mach-orion5x ARM: Orion: Remove redundant init_dma_coherent_pool_size() 2013-05-13 19:32:14 +00:00
mach-picoxcell
mach-prima2 ARM: prima2: fix incorrect panic usage 2013-06-11 00:11:31 -07:00
mach-pxa - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
mach-realview Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-05-03 09:13:19 -07:00
mach-rpc
mach-s3c24xx ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-s3c64xx For 3.10 we have a few new MFD drivers for: 2013-05-05 17:36:20 -07:00
mach-s5p64x0 Merge branch 'samsung/exynos-multiplatform' into next/drivers 2013-04-19 16:50:56 +02:00
mach-s5pc100 ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-s5pv210 ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-sa1100
mach-shark
mach-shmobile Renesas ARM based SoC fixes for v3.10 2013-06-07 18:11:02 -07:00
mach-socfpga Merge branch 'gic/cleanup' into next/soc 2013-04-28 15:06:56 -07:00
mach-spear Merge branch 'late/fixes' into fixes 2013-05-09 13:05:15 -07:00
mach-sunxi ARM: sunxi: select ARCH_REQUIRE_GPIOLIB 2013-05-15 09:42:47 +02:00
mach-tegra arch/arm/mach-tegra: don't check resource with devm_ioremap_resource 2013-05-18 11:58:05 +02:00
mach-u300 ARM: u300: fix ages old copy/paste bug 2013-04-26 17:07:38 -07:00
mach-ux500 ARM: ux500: Provide supplies for AUX1, AUX2 and AUX3 2013-05-27 14:08:20 +02:00
mach-versatile
mach-vexpress Moves xenvm to mach-virt. 2013-05-07 15:11:43 -07:00
mach-virt Moves xenvm to mach-virt. 2013-05-07 15:11:43 -07:00
mach-vt8500 ARM: vt8500: Add missing NULL terminator in dt_compat 2013-05-20 23:30:54 -07:00
mach-w90x900
mach-zynq ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
mm ARM: 7773/1: PJ4B: Add support for errata 4742 2013-06-24 14:28:46 +01:00
net
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
plat-orion ARM: plat-orion: Fix num_resources and id for ge10 and ge11 2013-05-20 17:39:07 +00:00
plat-pxa
plat-samsung ARM: SAMSUNG: pm: Adjust for pinctrl- and DT-enabled platforms 2013-06-11 01:10:12 -07:00
plat-versatile
tools
vfp ARM: add support for kernel mode NEON 2013-07-08 22:08:51 +01:00
xen xen/arm: rename xen_secondary_init and run it on every online cpu 2013-05-13 16:14:25 +00:00
Kconfig ARM: add support for kernel mode NEON 2013-07-08 22:08:51 +01:00
Kconfig-nommu
Kconfig.debug ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
Makefile ARM: 7712/1: Remove trailing whitespace in arch/arm/Makefile 2013-05-07 10:34:46 +01:00