diff -r c6f0968fdfe2 xen/arch/x86/hvm/svm/svm.c --- a/xen/arch/x86/hvm/svm/svm.c Mon Jan 25 14:34:36 2010 +0100 +++ b/xen/arch/x86/hvm/svm/svm.c Wed Jan 27 14:17:31 2010 +0100 @@ -192,6 +192,7 @@ static int svm_vmcb_save(struct vcpu *v, c->sysenter_cs = v->arch.hvm_svm.guest_sysenter_cs; c->sysenter_esp = v->arch.hvm_svm.guest_sysenter_esp; c->sysenter_eip = v->arch.hvm_svm.guest_sysenter_eip; + c->shadow_gs = vmcb->kerngsbase; c->pending_event = 0; c->error_code = 0; @@ -251,6 +252,7 @@ static int svm_vmcb_restore(struct vcpu v->arch.hvm_svm.guest_sysenter_cs = c->sysenter_cs; v->arch.hvm_svm.guest_sysenter_esp = c->sysenter_esp; v->arch.hvm_svm.guest_sysenter_eip = c->sysenter_eip; + vmcb->kerngsbase = c->shadow_gs; if ( paging_mode_hap(v->domain) ) {