aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/mach-default/mach_apic.h13
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apic.h1
-rw-r--r--arch/x86/kernel/io_apic.c2
-rw-r--r--arch/x86/mach-generic/bigsmp.c4
-rw-r--r--arch/x86/mach-generic/default.c16
-rw-r--r--arch/x86/mach-generic/es7000.c4
-rw-r--r--arch/x86/mach-generic/numaq.c4
-rw-r--r--arch/x86/mach-generic/summit.c4
8 files changed, 24 insertions, 24 deletions
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h
index 8adccf8ee47..9c56542644c 100644
--- a/arch/x86/include/asm/mach-default/mach_apic.h
+++ b/arch/x86/include/asm/mach-default/mach_apic.h
@@ -23,7 +23,6 @@ static inline const struct cpumask *default_target_cpus(void)
23#define cpu_mask_to_apicid (apic->cpu_mask_to_apicid) 23#define cpu_mask_to_apicid (apic->cpu_mask_to_apicid)
24#define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and) 24#define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and)
25#define phys_pkg_id (apic->phys_pkg_id) 25#define phys_pkg_id (apic->phys_pkg_id)
26#define vector_allocation_domain (apic->vector_allocation_domain)
27#define read_apic_id() (GET_APIC_ID(apic_read(APIC_ID))) 26#define read_apic_id() (GET_APIC_ID(apic_read(APIC_ID)))
28#define send_IPI_self (apic->send_IPI_self) 27#define send_IPI_self (apic->send_IPI_self)
29#define wakeup_secondary_cpu (apic->wakeup_cpu) 28#define wakeup_secondary_cpu (apic->wakeup_cpu)
@@ -89,18 +88,6 @@ static inline int apicid_to_node(int logical_apicid)
89#endif 88#endif
90} 89}
91 90
92static inline void vector_allocation_domain(int cpu, struct cpumask *retmask)
93{
94 /* Careful. Some cpus do not strictly honor the set of cpus
95 * specified in the interrupt destination when using lowest
96 * priority interrupt delivery mode.
97 *
98 * In particular there was a hyperthreading cpu observed to
99 * deliver interrupts to the wrong hyperthread when only one
100 * hyperthread was specified in the interrupt desitination.
101 */
102 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
103}
104#endif 91#endif
105 92
106static inline unsigned long default_check_apicid_used(physid_mask_t bitmap, int apicid) 93static inline unsigned long default_check_apicid_used(physid_mask_t bitmap, int apicid)
diff --git a/arch/x86/include/asm/mach-generic/mach_apic.h b/arch/x86/include/asm/mach-generic/mach_apic.h
index 4cb9e2b99e3..e94881af962 100644
--- a/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -15,7 +15,6 @@
15#define check_phys_apicid_present (apic->check_phys_apicid_present) 15#define check_phys_apicid_present (apic->check_phys_apicid_present)
16#define cpu_mask_to_apicid (apic->cpu_mask_to_apicid) 16#define cpu_mask_to_apicid (apic->cpu_mask_to_apicid)
17#define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and) 17#define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and)
18#define vector_allocation_domain (apic->vector_allocation_domain)
19#define enable_apic_mode (apic->enable_apic_mode) 18#define enable_apic_mode (apic->enable_apic_mode)
20#define phys_pkg_id (apic->phys_pkg_id) 19#define phys_pkg_id (apic->phys_pkg_id)
21#define wakeup_secondary_cpu (apic->wakeup_cpu) 20#define wakeup_secondary_cpu (apic->wakeup_cpu)
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 733ecf17272..49899e06624 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -1316,7 +1316,7 @@ __assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask)
1316 int new_cpu; 1316 int new_cpu;
1317 int vector, offset; 1317 int vector, offset;
1318 1318
1319 vector_allocation_domain(cpu, tmp_mask); 1319 apic->vector_allocation_domain(cpu, tmp_mask);
1320 1320
1321 vector = current_vector; 1321 vector = current_vector;
1322 offset = current_offset; 1322 offset = current_offset;
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c
index 6da251aa9f4..391cc99cd21 100644
--- a/arch/x86/mach-generic/bigsmp.c
+++ b/arch/x86/mach-generic/bigsmp.c
@@ -42,7 +42,7 @@ static const struct dmi_system_id bigsmp_dmi_table[] = {
42 { } 42 { }
43}; 43};
44 44
45static void vector_allocation_domain(int cpu, cpumask_t *retmask) 45static void bigsmp_vector_allocation_domain(int cpu, cpumask_t *retmask)
46{ 46{
47 cpus_clear(*retmask); 47 cpus_clear(*retmask);
48 cpu_set(cpu, *retmask); 48 cpu_set(cpu, *retmask);
@@ -74,7 +74,7 @@ struct genapic apic_bigsmp = {
74 .check_apicid_used = bigsmp_check_apicid_used, 74 .check_apicid_used = bigsmp_check_apicid_used,
75 .check_apicid_present = bigsmp_check_apicid_present, 75 .check_apicid_present = bigsmp_check_apicid_present,
76 76
77 .vector_allocation_domain = vector_allocation_domain, 77 .vector_allocation_domain = bigsmp_vector_allocation_domain,
78 .init_apic_ldr = init_apic_ldr, 78 .init_apic_ldr = init_apic_ldr,
79 79
80 .ioapic_phys_id_map = ioapic_phys_id_map, 80 .ioapic_phys_id_map = ioapic_phys_id_map,
diff --git a/arch/x86/mach-generic/default.c b/arch/x86/mach-generic/default.c
index e89e8c9dd68..6adc3c69a3c 100644
--- a/arch/x86/mach-generic/default.c
+++ b/arch/x86/mach-generic/default.c
@@ -18,6 +18,20 @@
18#include <asm/mach-default/mach_mpparse.h> 18#include <asm/mach-default/mach_mpparse.h>
19#include <asm/mach-default/mach_wakecpu.h> 19#include <asm/mach-default/mach_wakecpu.h>
20 20
21static void default_vector_allocation_domain(int cpu, struct cpumask *retmask)
22{
23 /*
24 * Careful. Some cpus do not strictly honor the set of cpus
25 * specified in the interrupt destination when using lowest
26 * priority interrupt delivery mode.
27 *
28 * In particular there was a hyperthreading cpu observed to
29 * deliver interrupts to the wrong hyperthread when only one
30 * hyperthread was specified in the interrupt desitination.
31 */
32 *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } };
33}
34
21/* should be called last. */ 35/* should be called last. */
22static int probe_default(void) 36static int probe_default(void)
23{ 37{
@@ -41,7 +55,7 @@ struct genapic apic_default = {
41 .check_apicid_used = default_check_apicid_used, 55 .check_apicid_used = default_check_apicid_used,
42 .check_apicid_present = default_check_apicid_present, 56 .check_apicid_present = default_check_apicid_present,
43 57
44 .vector_allocation_domain = vector_allocation_domain, 58 .vector_allocation_domain = default_vector_allocation_domain,
45 .init_apic_ldr = init_apic_ldr, 59 .init_apic_ldr = init_apic_ldr,
46 60
47 .ioapic_phys_id_map = ioapic_phys_id_map, 61 .ioapic_phys_id_map = ioapic_phys_id_map,
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c
index 8e9eeecf7e2..bc1f21cd6a4 100644
--- a/arch/x86/mach-generic/es7000.c
+++ b/arch/x86/mach-generic/es7000.c
@@ -86,7 +86,7 @@ static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
86} 86}
87#endif 87#endif
88 88
89static void vector_allocation_domain(int cpu, cpumask_t *retmask) 89static void es7000_vector_allocation_domain(int cpu, cpumask_t *retmask)
90{ 90{
91 /* Careful. Some cpus do not strictly honor the set of cpus 91 /* Careful. Some cpus do not strictly honor the set of cpus
92 * specified in the interrupt destination when using lowest 92 * specified in the interrupt destination when using lowest
@@ -116,7 +116,7 @@ struct genapic apic_es7000 = {
116 .check_apicid_used = es7000_check_apicid_used, 116 .check_apicid_used = es7000_check_apicid_used,
117 .check_apicid_present = es7000_check_apicid_present, 117 .check_apicid_present = es7000_check_apicid_present,
118 118
119 .vector_allocation_domain = vector_allocation_domain, 119 .vector_allocation_domain = es7000_vector_allocation_domain,
120 .init_apic_ldr = init_apic_ldr, 120 .init_apic_ldr = init_apic_ldr,
121 121
122 .ioapic_phys_id_map = ioapic_phys_id_map, 122 .ioapic_phys_id_map = ioapic_phys_id_map,
diff --git a/arch/x86/mach-generic/numaq.c b/arch/x86/mach-generic/numaq.c
index f909189fee3..712882f48c4 100644
--- a/arch/x86/mach-generic/numaq.c
+++ b/arch/x86/mach-generic/numaq.c
@@ -31,7 +31,7 @@ static int probe_numaq(void)
31 return found_numaq; 31 return found_numaq;
32} 32}
33 33
34static void vector_allocation_domain(int cpu, cpumask_t *retmask) 34static void numaq_vector_allocation_domain(int cpu, cpumask_t *retmask)
35{ 35{
36 /* Careful. Some cpus do not strictly honor the set of cpus 36 /* Careful. Some cpus do not strictly honor the set of cpus
37 * specified in the interrupt destination when using lowest 37 * specified in the interrupt destination when using lowest
@@ -61,7 +61,7 @@ struct genapic apic_numaq = {
61 .check_apicid_used = numaq_check_apicid_used, 61 .check_apicid_used = numaq_check_apicid_used,
62 .check_apicid_present = numaq_check_apicid_present, 62 .check_apicid_present = numaq_check_apicid_present,
63 63
64 .vector_allocation_domain = vector_allocation_domain, 64 .vector_allocation_domain = numaq_vector_allocation_domain,
65 .init_apic_ldr = init_apic_ldr, 65 .init_apic_ldr = init_apic_ldr,
66 66
67 .ioapic_phys_id_map = ioapic_phys_id_map, 67 .ioapic_phys_id_map = ioapic_phys_id_map,
diff --git a/arch/x86/mach-generic/summit.c b/arch/x86/mach-generic/summit.c
index 99a9bea8d14..1834887b94a 100644
--- a/arch/x86/mach-generic/summit.c
+++ b/arch/x86/mach-generic/summit.c
@@ -24,7 +24,7 @@ static int probe_summit(void)
24 return 0; 24 return 0;
25} 25}
26 26
27static void vector_allocation_domain(int cpu, cpumask_t *retmask) 27static void summit_vector_allocation_domain(int cpu, cpumask_t *retmask)
28{ 28{
29 /* Careful. Some cpus do not strictly honor the set of cpus 29 /* Careful. Some cpus do not strictly honor the set of cpus
30 * specified in the interrupt destination when using lowest 30 * specified in the interrupt destination when using lowest
@@ -54,7 +54,7 @@ struct genapic apic_summit = {
54 .check_apicid_used = summit_check_apicid_used, 54 .check_apicid_used = summit_check_apicid_used,
55 .check_apicid_present = summit_check_apicid_present, 55 .check_apicid_present = summit_check_apicid_present,
56 56
57 .vector_allocation_domain = vector_allocation_domain, 57 .vector_allocation_domain = summit_vector_allocation_domain,
58 .init_apic_ldr = init_apic_ldr, 58 .init_apic_ldr = init_apic_ldr,
59 59
60 .ioapic_phys_id_map = ioapic_phys_id_map, 60 .ioapic_phys_id_map = ioapic_phys_id_map,