With single CPU affinities the post SMP boot vector update is pointless as
it will just leave the affinities on the same vectors and the same CPUs.

Remove it.

Signed-off-by: Thomas Gleixner <t...@linutronix.de>
---
 arch/x86/include/asm/io_apic.h |    2 -
 arch/x86/kernel/apic/io_apic.c |   42 -----------------------------------------
 arch/x86/kernel/smpboot.c      |    1 
 3 files changed, 45 deletions(-)

--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -192,7 +192,6 @@ static inline unsigned int io_apic_read(
 extern void setup_IO_APIC(void);
 extern void enable_IO_APIC(void);
 extern void disable_IO_APIC(void);
-extern void setup_ioapic_dest(void);
 extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin);
 extern void print_IO_APICs(void);
 #else  /* !CONFIG_X86_IO_APIC */
@@ -232,7 +231,6 @@ static inline void io_apic_init_mappings
 
 static inline void setup_IO_APIC(void) { }
 static inline void enable_IO_APIC(void) { }
-static inline void setup_ioapic_dest(void) { }
 
 #endif
 
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2515,48 +2515,6 @@ int acpi_get_override_irq(u32 gsi, int *
  * This function updates target affinity of IOAPIC interrupts to include
  * the CPUs which came online during SMP bringup.
  */
-#ifdef CONFIG_SMP
-void __init setup_ioapic_dest(void)
-{
-       int pin, ioapic, irq, irq_entry;
-       const struct cpumask *mask;
-       struct irq_desc *desc;
-       struct irq_data *idata;
-       struct irq_chip *chip;
-
-       if (skip_ioapic_setup == 1)
-               return;
-
-       for_each_ioapic_pin(ioapic, pin) {
-               irq_entry = find_irq_entry(ioapic, pin, mp_INT);
-               if (irq_entry == -1)
-                       continue;
-
-               irq = pin_2_irq(irq_entry, ioapic, pin, 0);
-               if (irq < 0 || !mp_init_irq_at_boot(ioapic, irq))
-                       continue;
-
-               desc = irq_to_desc(irq);
-               raw_spin_lock_irq(&desc->lock);
-               idata = irq_desc_get_irq_data(desc);
-
-               /*
-                * Honour affinities which have been set in early boot
-                */
-               if (!irqd_can_balance(idata) || irqd_affinity_was_set(idata))
-                       mask = irq_data_get_affinity_mask(idata);
-               else
-                       mask = irq_default_affinity;
-
-               chip = irq_data_get_irq_chip(idata);
-               /* Might be lapic_chip for irq 0 */
-               if (chip->irq_set_affinity)
-                       chip->irq_set_affinity(idata, mask, false);
-               raw_spin_unlock_irq(&desc->lock);
-       }
-}
-#endif
-
 #define IOAPIC_RESOURCE_NAME_SIZE 11
 
 static struct resource *ioapic_resources;
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1392,7 +1392,6 @@ void __init native_smp_cpus_done(unsigne
 
        nmi_selftest();
        impress_friends();
-       setup_ioapic_dest();
        mtrr_aps_init();
 }
 


Reply via email to