diff options
-rw-r--r-- | arch/x86/include/asm/mach-default/mach_apic.h | 13 | ||||
-rw-r--r-- | arch/x86/include/asm/mach-generic/mach_apic.h | 1 | ||||
-rw-r--r-- | arch/x86/kernel/io_apic.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/bigsmp.c | 4 | ||||
-rw-r--r-- | arch/x86/mach-generic/default.c | 16 | ||||
-rw-r--r-- | arch/x86/mach-generic/es7000.c | 4 | ||||
-rw-r--r-- | arch/x86/mach-generic/numaq.c | 4 | ||||
-rw-r--r-- | arch/x86/mach-generic/summit.c | 4 |
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 | ||
92 | static 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 | ||
106 | static inline unsigned long default_check_apicid_used(physid_mask_t bitmap, int apicid) | 93 | static 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 | ||
45 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) | 45 | static 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 | ||
21 | static 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. */ |
22 | static int probe_default(void) | 36 | static 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 | ||
89 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) | 89 | static 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 | ||
34 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) | 34 | static 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 | ||
27 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) | 27 | static 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, |