diff -urN oldtree/kernel/irq/chip.c newtree/kernel/irq/chip.c --- oldtree/kernel/irq/chip.c 2006-09-24 17:03:56.000000000 -0400 +++ newtree/kernel/irq/chip.c 2006-09-27 13:49:01.000000000 -0400 @@ -590,10 +590,8 @@ /* Uninstall? */ if (handle == handle_bad_irq) { - if (desc->chip != &no_irq_chip) { - desc->chip->mask(irq); - desc->chip->ack(irq); - } + if (desc->chip != &no_irq_chip) + desc->chip->shutdown(irq); desc->status |= IRQ_DISABLED; desc->depth = 1; } @@ -603,7 +601,7 @@ desc->status &= ~IRQ_DISABLED; desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE; desc->depth = 0; - desc->chip->unmask(irq); + desc->chip->startup(irq); } spin_unlock_irqrestore(&desc->lock, flags); }