xen/21372-x86-cross-cpu-wait.patch

43 lines
1.6 KiB
Diff
Raw Normal View History

# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1273740260 -3600
# Node ID 6c22d2dfed4882d5febf98d2afbb96ec9bedd043
# Parent 97da07c523ddc2565da67b6cfeec006d742bb06d
x86: Fix a few on_{selected,each}_cpus callers who should wait for completion.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -195,7 +195,7 @@ static void drv_write(struct drv_cmd *cm
cpu_isset(smp_processor_id(), cmd->mask))
do_drv_write((void *)cmd);
else
- on_selected_cpus(&cmd->mask, do_drv_write, cmd, 0);
+ on_selected_cpus(&cmd->mask, do_drv_write, cmd, 1);
}
static u32 get_cur_val(cpumask_t mask)
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -122,7 +122,7 @@ static int powernow_cpufreq_target(struc
cmd.val = next_perf_state;
- on_selected_cpus(&cmd.mask, transition_pstate, &cmd, 0);
+ on_selected_cpus(&cmd.mask, transition_pstate, &cmd, 1);
for_each_cpu_mask(j, online_policy_cpus)
cpufreq_statistic_update(j, perf->state, next_perf_state);
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1610,7 +1610,7 @@ long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u
add_taint(TAINT_ERROR_INJECT);
if ( mce_broadcast )
- on_each_cpu(x86_mc_mceinject, mc_mceinject, 0);
+ on_each_cpu(x86_mc_mceinject, mc_mceinject, 1);
else
on_selected_cpus(cpumask_of(target), x86_mc_mceinject,
mc_mceinject, 1);