Commit ef9e56d8 authored by Thomas Gleixner's avatar Thomas Gleixner

x86/ioapic: Remove obsolete post hotplug update

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: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarJuergen Gross <jgross@suse.com>
Tested-by: default avatarYu Chen <yu.c.chen@intel.com>
Acked-by: default avatarJuergen 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
parent fdba46ff
...@@ -192,7 +192,6 @@ static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) ...@@ -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 setup_IO_APIC(void);
extern void enable_IO_APIC(void); extern void enable_IO_APIC(void);
extern void disable_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 int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin);
extern void print_IO_APICs(void); extern void print_IO_APICs(void);
#else /* !CONFIG_X86_IO_APIC */ #else /* !CONFIG_X86_IO_APIC */
...@@ -232,7 +231,6 @@ static inline void io_apic_init_mappings(void) { } ...@@ -232,7 +231,6 @@ static inline void io_apic_init_mappings(void) { }
static inline void setup_IO_APIC(void) { } static inline void setup_IO_APIC(void) { }
static inline void enable_IO_APIC(void) { } static inline void enable_IO_APIC(void) { }
static inline void setup_ioapic_dest(void) { }
#endif #endif
......
...@@ -2556,48 +2556,6 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) ...@@ -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 * This function updates target affinity of IOAPIC interrupts to include
* the CPUs which came online during SMP bringup. * 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 #define IOAPIC_RESOURCE_NAME_SIZE 11
static struct resource *ioapic_resources; static struct resource *ioapic_resources;
......
...@@ -1360,7 +1360,6 @@ void __init native_smp_cpus_done(unsigned int max_cpus) ...@@ -1360,7 +1360,6 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
nmi_selftest(); nmi_selftest();
impress_friends(); impress_friends();
setup_ioapic_dest();
mtrr_aps_init(); mtrr_aps_init();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment