OpenCloudOS-Kernel/arch/arm/mach-ep93xx
Catalin Marinas 1417a6b8dc ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr
The Undef abort handler in the kernel reads the undefined instruction
from user space. If the page table was modified from another CPU, the
user access could fail and do_page_fault() will be executed with
interrupts disabled. This can potentially deadlock on ARM11MPCore or on
Cortex-A15 with erratum 798181 workaround enabled (both implying IPI for
TLB maintenance with page table lock held).

This patch enables the IRQs in __und_usr before attempting to read the
instruction from user space.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Arun KS <getarunks@gmail.com>
Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ryan Mallon <rmallon@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-04-25 12:06:38 +01:00
..
include/mach This cleanup series gets rid of <mach/timex.h> for platforms not using 2014-02-18 22:19:33 -08:00
Kconfig ARM: ep93xx: use soc bus 2013-11-25 14:24:28 -08:00
Makefile ep93xx: Move crunch code to mach-ep93xx directory 2012-03-14 11:43:10 +11:00
Makefile.boot ARM: 7022/1: allow to detect conflicting zreladdrs 2011-10-17 09:12:40 +01:00
adssphere.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
clock.c usb: ohci: remove ep93xx bus glue platform driver 2013-10-29 16:43:37 -07:00
core.c ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
crunch-bits.S ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr 2014-04-25 12:06:38 +01:00
crunch.c ARM: ep93xx: use machine specific hook for late init 2012-05-05 14:20:34 +08:00
dma.c ARM: ep93xx: move platform_data definitions 2012-09-14 11:16:55 +02:00
edb93xx.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
gesbc9312.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
micro9.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
simone.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
snappercl15.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
soc.h ep93xx: IDE driver platform support code 2012-06-04 14:40:46 +10:00
ts72xx.c Initial irqchip init infrastructure and GIC and VIC clean-ups 2013-01-14 19:55:03 -08:00
ts72xx.h ARM: ep93xx: Move ts72xx.h out of include/mach 2012-09-17 09:09:08 +10:00
vision_ep9307.c MMC highlights for 3.12: 2013-09-10 13:33:09 -07:00