entry->pin = pin;
 }
 
-/*
- * Reroute an IRQ to a different pin.
- */
-static void __init replace_pin_at_irq(unsigned int irq,
-                                     int oldapic, int oldpin,
-                                     int newapic, int newpin)
-{
-       struct irq_pin_list *entry = irq_2_pin + irq;
-
-       while (1) {
-               if (entry->apic == oldapic && entry->pin == oldpin) {
-                       entry->apic = newapic;
-                       entry->pin = newpin;
-               }
-               if (!entry->next)
-                       break;
-               entry = irq_2_pin + entry->next;
-       }
-}
-
 
 #define DO_ACTION(name,R,ACTION, FINAL)                                        \
                                                                        \
                apic2 = apic1;
        }
 
-       replace_pin_at_irq(0, 0, 0, apic1, pin1);
-       apic1 = 0;
-       pin1 = 0;
-       setup_timer_IRQ0_pin(apic1, pin1, cfg->vector);
-
        if (pin1 != -1) {
                /*
                 * Ok, does IRQ0 through the IOAPIC work?
                /*
                 * legacy devices should be connected to IO APIC #0
                 */
-               replace_pin_at_irq(0, apic1, pin1, apic2, pin2);
+               /* replace_pin_at_irq(0, apic1, pin1, apic2, pin2); */
                setup_timer_IRQ0_pin(apic2, pin2, cfg->vector);
                unmask_IO_APIC_irq(0);
+               clear_IO_APIC_pin(apic2, pin2);
                enable_8259A_irq(0);
                if (timer_irq_works()) {
                        apic_printk(APIC_VERBOSE," works.\n");