OpenCloudOS-Kernel/arch/arm/vfp
Will Deacon 998de4acb2 ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access
The vfp_enable function enables access to the VFP co-processor register
space (cp10 and cp11) on the current CPU and must be called with
preemption disabled. Unfortunately, the vfp_init late initcall does not
disable preemption and can lead to an oops during boot if thread
migration occurs at the wrong time and we end up attempting to access
the FPSID on a CPU with VFP access disabled.

This patch fixes the initcall to call vfp_enable from a non-preemptible
context on each CPU and adds a BUG_ON(preemptible) to ensure that any
similar problems are easily spotted in the future.

Cc: stable@vger.kernel.org
Reported-by: Hyungwoo Yang <hwoo.yang@gmail.com>
Signed-off-by: Hyungwoo Yang <hyungwooy@nvidia.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-05-12 14:37:59 +01:00
..
Makefile ARM: vfp: use -mfloat-abi=soft to build vfp 2011-10-01 21:08:55 +02:00
entry.S Thumb-2: Add some .align statements to the .S files 2009-07-24 12:32:52 +01:00
vfp.h [ARM] 5387/1: Add ptrace VFP support on ARM 2009-02-12 10:59:43 +00:00
vfpdouble.c [ARM] vfp: fix fuitod/fsitod instructions 2008-01-10 17:07:08 +00:00
vfphw.S ARM: vfp: fix a hole in VFP thread migration 2011-07-09 17:22:12 +01:00
vfpinstr.h [ARM] 4583/1: ARMv7: Add VFPv3 support 2008-01-26 14:41:28 +00:00
vfpmodule.c ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access 2012-05-12 14:37:59 +01:00
vfpsingle.c [ARM] Remove unnecessary asm/ptrace.h from VFP support code 2007-04-22 10:56:40 +01:00