--- old_linux/arch/ppc/kernel/ppc4xx_pic.c Thu Jan 31 15:05:03 2002 +++ linux/arch/ppc/kernel/ppc4xx_pic.c Thu Jan 31 14:58:11 2002 @@ -135,11 +135,14 @@ { int bit, word; - bit = irq & 0x1f; - word = irq >> 5; + if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) { - ppc_cached_irq_mask[word] |= 1 << (31 - bit); - mtdcr(DCRN_UIC0_ER, ppc_cached_irq_mask[word]); + bit = irq & 0x1f; + word = irq >> 5; + + ppc_cached_irq_mask[word] |= 1 << (31 - bit); + mtdcr(DCRN_UIC0_ER, ppc_cached_irq_mask[word]); + } } static void