aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/schedule.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/common/schedule.c')
-rw-r--r--xen/common/schedule.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xen/common/schedule.c b/xen/common/schedule.c
index dde615ee66..aa8bdd5969 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -489,7 +489,11 @@ static void vcpu_migrate(struct vcpu *v)
* Switch to new CPU, then unlock new and old CPU. This is safe because
* the lock pointer cant' change while the current lock is held.
*/
- v->processor = new_cpu;
+ if ( VCPU2OP(v)->migrate )
+ SCHED_OP(VCPU2OP(v), migrate, v, new_cpu);
+ else
+ v->processor = new_cpu;
+
if ( old_lock != new_lock )
spin_unlock(new_lock);