diff options
Diffstat (limited to 'arch/mips/alchemy/devboards/bcsr.c')
| -rw-r--r-- | arch/mips/alchemy/devboards/bcsr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/alchemy/devboards/bcsr.c b/arch/mips/alchemy/devboards/bcsr.c index 596ad00e7f05..463d2c4d9441 100644 --- a/arch/mips/alchemy/devboards/bcsr.c +++ b/arch/mips/alchemy/devboards/bcsr.c | |||
| @@ -89,8 +89,12 @@ static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d) | |||
| 89 | { | 89 | { |
| 90 | unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT); | 90 | unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT); |
| 91 | 91 | ||
| 92 | disable_irq_nosync(irq); | ||
| 93 | |||
| 92 | for ( ; bisr; bisr &= bisr - 1) | 94 | for ( ; bisr; bisr &= bisr - 1) |
| 93 | generic_handle_irq(bcsr_csc_base + __ffs(bisr)); | 95 | generic_handle_irq(bcsr_csc_base + __ffs(bisr)); |
| 96 | |||
| 97 | enable_irq(irq); | ||
| 94 | } | 98 | } |
| 95 | 99 | ||
| 96 | /* NOTE: both the enable and mask bits must be cleared, otherwise the | 100 | /* NOTE: both the enable and mask bits must be cleared, otherwise the |
