diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-25 11:44:06 +0100 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-02 10:56:00 +0100 | 
| commit | 02fe2845d6a837ab02f0738f6cf4591a02cc88d4 (patch) | |
| tree | e50d06a1ab73a2735dd145edde458463b1da4a37 /arch/arm/mm/alignment.c | |
| parent | 8b4186160b7894ca4583f702a562856d5d9e9118 (diff) | |
| download | olio-linux-3.10-02fe2845d6a837ab02f0738f6cf4591a02cc88d4.tar.xz olio-linux-3.10-02fe2845d6a837ab02f0738f6cf4591a02cc88d4.zip  | |
ARM: entry: avoid enabling interrupts in prefetch/data abort handlers
Avoid enabling interrupts if the parent context had interrupts enabled
in the abort handler assembly code, and move this into the breakpoint/
page/alignment fault handlers instead.
This gets rid of some special-casing for the breakpoint fault handlers
from the low level abort handler path.
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/alignment.c')
| -rw-r--r-- | arch/arm/mm/alignment.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 724ba3bce72..be7c638b648 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c @@ -727,6 +727,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)  	int isize = 4;  	int thumb2_32b = 0; +	if (interrupts_enabled(regs)) +		local_irq_enable(); +  	instrptr = instruction_pointer(regs);  	fs = get_fs();  |