|
@@ -58,6 +58,8 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
|
|
|
unsigned long query_cpu;
|
|
|
unsigned long flags;
|
|
|
|
|
|
+ x2apic_wrmsr_fence();
|
|
|
+
|
|
|
local_irq_save(flags);
|
|
|
for_each_cpu(query_cpu, mask) {
|
|
|
__x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu),
|
|
@@ -73,6 +75,8 @@ static void
|
|
|
unsigned long query_cpu;
|
|
|
unsigned long flags;
|
|
|
|
|
|
+ x2apic_wrmsr_fence();
|
|
|
+
|
|
|
local_irq_save(flags);
|
|
|
for_each_cpu(query_cpu, mask) {
|
|
|
if (query_cpu != this_cpu)
|
|
@@ -89,6 +93,8 @@ static void x2apic_send_IPI_allbutself(int vector)
|
|
|
unsigned long query_cpu;
|
|
|
unsigned long flags;
|
|
|
|
|
|
+ x2apic_wrmsr_fence();
|
|
|
+
|
|
|
local_irq_save(flags);
|
|
|
for_each_online_cpu(query_cpu) {
|
|
|
if (query_cpu == this_cpu)
|