diff options
Diffstat (limited to 'arch/x86/kernel/apic/x2apic_phys.c')
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_phys.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c index a284359627e..a8989aadc99 100644 --- a/arch/x86/kernel/apic/x2apic_phys.c +++ b/arch/x86/kernel/apic/x2apic_phys.c @@ -27,11 +27,13 @@ static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)  		return 0;  } -/* Start with all IRQs pointing to boot CPU.  IRQ balancing will shift them. */ - +/* + * need to use more than cpu 0, because we need more vectors when + * MSI-X are used. + */  static const struct cpumask *x2apic_target_cpus(void)  { -	return cpumask_of(0); +	return cpu_online_mask;  }  static void x2apic_vector_allocation_domain(int cpu, struct cpumask *retmask) @@ -162,7 +164,7 @@ static unsigned long set_apic_id(unsigned int id)  static int x2apic_phys_pkg_id(int initial_apicid, int index_msb)  { -	return current_cpu_data.initial_apicid >> index_msb; +	return initial_apicid >> index_msb;  }  static void x2apic_send_IPI_self(int vector)  |