--- xen-unstable/xen/arch/x86/domain.c.old 2006-10-04 01:39:48.000000000 -0300 +++ xen-unstable/xen/arch/x86/domain.c 2006-10-20 15:08:46.000000000 -0300 @@ -376,6 +376,7 @@ arch_do_vcpu_op( case VCPUOP_register_runstate_memory_area: { struct vcpu_register_runstate_memory_area area; + struct vcpu_runstate_info runstate; rc = -EFAULT; if ( copy_from_guest(&area, arg, 1) ) @@ -387,9 +388,9 @@ arch_do_vcpu_op( rc = 0; v->runstate_guest = area.addr.v; - if ( v == current ) - __copy_to_user(v->runstate_guest, &v->runstate, - sizeof(v->runstate)); + vcpu_runstate_get(v,&runstate); + __copy_to_user(v->runstate_guest, &runstate, + sizeof(runstate)); break; }