x86: ioapic: Use new setup function in pre_init_apic_IRQ0()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 23 Feb 2011 12:07:54 +0000 (13:07 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 23 Feb 2011 16:26:49 +0000 (17:26 +0100)
Remove the duplicated code and call the function. It does not matter
whether we allocated the cfg before calling setup_local_APIC() and we
can set the irq chip and handler after that as well.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/apic/io_apic.c

index 6deb3ca..51c8bd1 100644 (file)
@@ -4103,20 +4103,15 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
 /* Enable IOAPIC early just for system timer */
 void __init pre_init_apic_IRQ0(void)
 {
-       struct irq_cfg *cfg;
+       struct io_apic_irq_attr attr = { 0, 0, 0, 0 };
 
        printk(KERN_INFO "Early APIC setup for system timer0\n");
 #ifndef CONFIG_SMP
        physid_set_mask_of_physid(boot_cpu_physical_apicid,
                                         &phys_cpu_present_map);
 #endif
-       /* Make sure the irq descriptor is set up */
-       cfg = alloc_irq_and_cfg_at(0, 0);
-
        setup_local_APIC();
 
-       add_pin_to_irq_node(cfg, 0, 0, 0);
+       io_apic_setup_irq_pin(0, 0, &attr);
        set_irq_chip_and_handler_name(0, &ioapic_chip, handle_edge_irq, "edge");
-
-       setup_ioapic_irq(0, 0, 0, cfg, 0, 0);
 }