linux/arch
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
..
alpha alpha: fix build failures from system.h dismemberment 2012-04-13 13:15:16 -04:00
arm ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access 2012-05-12 14:37:59 +01:00
avr32 avr32: fix nop compile fails from system.h split up 2012-04-04 08:23:44 -07:00
blackfin blackfin: fix ifdef fustercluck in mach-bf538/boards/ezkit.c 2012-04-26 14:46:51 -04:00
c6x irq: Kill pointless irqd_to_hw export 2012-04-10 22:39:17 -06:00
cris Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-29 18:12:23 -07:00
frv frv: fix warnings in mb93090-mb00/pci-dma.c about implicit EXPORT_SYMBOL 2012-04-02 14:41:26 -07:00
h8300 Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-29 18:12:23 -07:00
hexagon hexagon: add missing cpu.h include 2012-04-23 12:57:24 -05:00
ia64 kill mm argument of vm_munmap() 2012-04-21 01:58:20 -04:00
m32r Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-29 18:12:23 -07:00
m68k m68knommu: make sure 2nd FEC eth interface pins are enabled on 5275 ColdFire 2012-04-17 17:06:34 +10:00
microblaze Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
mips Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
mn10300 Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-29 18:12:23 -07:00
openrisc Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
parisc parisc: fix missing cmpxchg file error from system.h split 2012-04-02 14:41:26 -07:00
powerpc powerpc/pseries: Rivet CONFIG_EEH for pSeries platform 2012-04-30 10:45:26 +10:00
s390 [S390] Fix compile error in swab.h 2012-04-11 14:28:26 +02:00
score Delete all instances of asm/system.h 2012-03-28 18:30:03 +01:00
sh sh: Fix up tracepoint build fallout from static key introduction. 2012-04-27 11:12:38 +09:30
sparc sparc32,leon: add notify_cpu_starting() 2012-04-21 16:35:06 -04:00
tile arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
um um: uml_setup_stubs': warning: unused variable 'pages' 2012-04-10 00:13:45 +02:00
unicore32 Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
x86 Very good bug-fixes: 2012-04-27 19:56:22 -07:00
xtensa xtensa: fix build fail on undefined ack_bad_irq 2012-04-26 18:35:32 -04:00
.gitignore
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-03-29 14:49:45 -07:00