No need to try migrate in current context since self migrate will be handled by next vcpu after context switch. Signed-off-by Kevin Tian diff -r e66f047bc97e xen/common/schedule.c --- a/xen/common/schedule.c Tue Jan 09 18:56:44 2007 -0800 +++ b/xen/common/schedule.c Thu Jan 11 16:31:37 2007 +0800 @@ -243,7 +243,7 @@ int vcpu_set_affinity(struct vcpu *v, cp vcpu_schedule_unlock_irqrestore(v, flags); - if ( test_bit(_VCPUF_migrating, &v->vcpu_flags) ) + if ( (v != current) && test_bit(_VCPUF_migrating, &v->vcpu_flags) ) { vcpu_sleep_nosync(v); vcpu_migrate(v);