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);
 }
