aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/stop_machine.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-04-19 17:48:20 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-04-19 17:48:20 +0100
commit346da00456eb20d41406a72e2e28f27429aca810 (patch)
tree4fab317b3cb3f5cfeff29381f3362f6c45eab456 /xen/common/stop_machine.c
parentb30a2c542669d37e0f33f959cdb49a1384fe52c4 (diff)
downloadxen-346da00456eb20d41406a72e2e28f27429aca810.tar.gz
xen-346da00456eb20d41406a72e2e28f27429aca810.tar.bz2
xen-346da00456eb20d41406a72e2e28f27429aca810.zip
Synchronise lazy execstate before calling tasklet handlers.
This ensures we are properly running on idle-vcpu state, which certain things (e.g., use of vmx_vmcs_{enter,exit}) rely on. It also means we don't need to do the same thing in the stopmachine_run handler. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/common/stop_machine.c')
-rw-r--r--xen/common/stop_machine.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/xen/common/stop_machine.c b/xen/common/stop_machine.c
index 99604cde32..9f5dd1e799 100644
--- a/xen/common/stop_machine.c
+++ b/xen/common/stop_machine.c
@@ -98,7 +98,6 @@ int stop_machine_run(int (*fn)(void *), void *data, unsigned int cpu)
for_each_cpu_mask ( i, allbutself )
tasklet_schedule_on_cpu(&per_cpu(stopmachine_tasklet, i), i);
- sync_local_execstate();
stopmachine_set_state(STOPMACHINE_PREPARE);
local_irq_disable();
@@ -121,7 +120,6 @@ static void stopmachine_action(unsigned long unused)
{
enum stopmachine_state state = STOPMACHINE_START;
- sync_local_execstate();
smp_mb();
while ( state != STOPMACHINE_EXIT )