diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-27 23:13:04 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:20:18 -0500 |
commit | 0b06e734bff7554c31eac4aad2fc9be4adb7c1c1 (patch) | |
tree | 52b3f9ccf6d85e503cf949c888ded6722c66e3a3 /arch/x86/kernel/genx2apic_cluster.c | |
parent | 08125d3edab90644724652eedec3e219e3e0f2e7 (diff) |
x86: clean up the APIC_DEST_LOGICAL logic
Impact: cleanup
The bigsmp and es7000 subarchitectures un-defined APIC_DEST_LOGICAL in
a rather nasty way by re-defining it to zero. That is infinitely
fragile and makes it very hard to see what to code really does in
a given context. The very same constant has different meanings and
values - depending on which subarch is enabled.
Untangle this mess by never undefining the constant, but instead
propagating the right values into the genapic driver templates.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/genx2apic_cluster.c')
-rw-r--r-- | arch/x86/kernel/genx2apic_cluster.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/genx2apic_cluster.c index c1cffae4a4c2..a76e75ecc206 100644 --- a/arch/x86/kernel/genx2apic_cluster.c +++ b/arch/x86/kernel/genx2apic_cluster.c | |||
@@ -64,7 +64,7 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector) | |||
64 | for_each_cpu(query_cpu, mask) | 64 | for_each_cpu(query_cpu, mask) |
65 | __x2apic_send_IPI_dest( | 65 | __x2apic_send_IPI_dest( |
66 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), | 66 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), |
67 | vector, APIC_DEST_LOGICAL); | 67 | vector, apic->apic_destination_logical); |
68 | local_irq_restore(flags); | 68 | local_irq_restore(flags); |
69 | } | 69 | } |
70 | 70 | ||
@@ -80,7 +80,7 @@ static void x2apic_send_IPI_mask_allbutself(const struct cpumask *mask, | |||
80 | if (query_cpu != this_cpu) | 80 | if (query_cpu != this_cpu) |
81 | __x2apic_send_IPI_dest( | 81 | __x2apic_send_IPI_dest( |
82 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), | 82 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), |
83 | vector, APIC_DEST_LOGICAL); | 83 | vector, apic->apic_destination_logical); |
84 | local_irq_restore(flags); | 84 | local_irq_restore(flags); |
85 | } | 85 | } |
86 | 86 | ||
@@ -95,7 +95,7 @@ static void x2apic_send_IPI_allbutself(int vector) | |||
95 | if (query_cpu != this_cpu) | 95 | if (query_cpu != this_cpu) |
96 | __x2apic_send_IPI_dest( | 96 | __x2apic_send_IPI_dest( |
97 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), | 97 | per_cpu(x86_cpu_to_logical_apicid, query_cpu), |
98 | vector, APIC_DEST_LOGICAL); | 98 | vector, apic->apic_destination_logical); |
99 | local_irq_restore(flags); | 99 | local_irq_restore(flags); |
100 | } | 100 | } |
101 | 101 | ||
@@ -183,11 +183,11 @@ struct genapic apic_x2apic_cluster = { | |||
183 | .apic_id_registered = x2apic_apic_id_registered, | 183 | .apic_id_registered = x2apic_apic_id_registered, |
184 | 184 | ||
185 | .irq_delivery_mode = dest_LowestPrio, | 185 | .irq_delivery_mode = dest_LowestPrio, |
186 | .irq_dest_mode = (APIC_DEST_LOGICAL != 0), | 186 | .irq_dest_mode = 1, /* logical */ |
187 | 187 | ||
188 | .target_cpus = x2apic_target_cpus, | 188 | .target_cpus = x2apic_target_cpus, |
189 | .disable_esr = 0, | 189 | .disable_esr = 0, |
190 | .apic_destination_logical = 0, | 190 | .apic_destination_logical = APIC_DEST_LOGICAL, |
191 | .check_apicid_used = NULL, | 191 | .check_apicid_used = NULL, |
192 | .check_apicid_present = NULL, | 192 | .check_apicid_present = NULL, |
193 | 193 | ||