x86/ioapic: Remove obsolete post hotplug update
authorThomas Gleixner <tglx@linutronix.de>
Wed, 13 Sep 2017 21:29:28 +0000 (23:29 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 25 Sep 2017 18:51:52 +0000 (20:51 +0200)
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 <tglx@linutronix.de>
Tested-by: Juergen Gross <jgross@suse.com>
Tested-by: Yu Chen <yu.c.chen@intel.com>
Acked-by: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Alok Kataria <akataria@vmware.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rui Zhang <rui.zhang@intel.com>
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Len Brown <lenb@kernel.org>
Link: https://lkml.kernel.org/r/20170913213154.308697243@linutronix.de
arch/x86/include/asm/io_apic.h
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/smpboot.c

index 6cbf2cf..731c686 100644 (file)
@@ -192,7 +192,6 @@ static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
 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(void) { }
 
 static inline void setup_IO_APIC(void) { }
 static inline void enable_IO_APIC(void) { }
-static inline void setup_ioapic_dest(void) { }
 
 #endif
 
index d8c75d6..81f35ae 100644 (file)
@@ -2556,48 +2556,6 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity)
  * 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;
index 81652e3..d8cef32 100644 (file)
@@ -1360,7 +1360,6 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
 
        nmi_selftest();
        impress_friends();
-       setup_ioapic_dest();
        mtrr_aps_init();
 }