diff options
Diffstat (limited to 'arch/blackfin/kernel/irqchip.c')
-rw-r--r-- | arch/blackfin/kernel/irqchip.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c index 23e9aa080710..1ab5b532ec72 100644 --- a/arch/blackfin/kernel/irqchip.c +++ b/arch/blackfin/kernel/irqchip.c | |||
@@ -149,11 +149,15 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) | |||
149 | #endif | 149 | #endif |
150 | generic_handle_irq(irq); | 150 | generic_handle_irq(irq); |
151 | 151 | ||
152 | #ifndef CONFIG_IPIPE /* Useless and bugous over the I-pipe: IRQs are threaded. */ | 152 | #ifndef CONFIG_IPIPE |
153 | /* If we're the only interrupt running (ignoring IRQ15 which is for | 153 | /* |
154 | syscalls), lower our priority to IRQ14 so that softirqs run at | 154 | * If we're the only interrupt running (ignoring IRQ15 which |
155 | that level. If there's another, lower-level interrupt, irq_exit | 155 | * is for syscalls), lower our priority to IRQ14 so that |
156 | will defer softirqs to that. */ | 156 | * softirqs run at that level. If there's another, |
157 | * lower-level interrupt, irq_exit will defer softirqs to | ||
158 | * that. If the interrupt pipeline is enabled, we are already | ||
159 | * running at IRQ14 priority, so we don't need this code. | ||
160 | */ | ||
157 | CSYNC(); | 161 | CSYNC(); |
158 | pending = bfin_read_IPEND() & ~0x8000; | 162 | pending = bfin_read_IPEND() & ~0x8000; |
159 | other_ints = pending & (pending - 1); | 163 | other_ints = pending & (pending - 1); |