aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/genx2apic_cluster.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-27 23:13:04 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-28 17:20:18 -0500
commit0b06e734bff7554c31eac4aad2fc9be4adb7c1c1 (patch)
tree52b3f9ccf6d85e503cf949c888ded6722c66e3a3 /arch/x86/kernel/genx2apic_cluster.c
parent08125d3edab90644724652eedec3e219e3e0f2e7 (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.c10
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