aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/kvm_host.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-06-10 10:02:15 -0400
committerAvi Kivity <avi@redhat.com>2010-08-01 03:46:34 -0400
commita83b29c6ad6d6497e569edbc29e556a384cebddd (patch)
tree444c440ec0e1f8e0d73d89cfc66fd185b03223c9 /arch/x86/include/asm/kvm_host.h
parent49a9b07edcf4aff159c1f3d3a27e58cf38bc27cd (diff)
KVM: Fix mov cr4 #GP at wrong instruction
On Intel, we call skip_emulated_instruction() even if we injected a #GP, resulting in the #GP pointing at the wrong address. Fix by injecting the exception and skipping the instruction at the same place, so we can do just one or the other. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r--arch/x86/include/asm/kvm_host.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index b23708450210..ea8c319cdffc 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -599,7 +599,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason,
599 599
600int kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0); 600int kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0);
601void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3); 601void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3);
602void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4); 602int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4);
603void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8); 603void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8);
604int kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val); 604int kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val);
605int kvm_get_dr(struct kvm_vcpu *vcpu, int dr, unsigned long *val); 605int kvm_get_dr(struct kvm_vcpu *vcpu, int dr, unsigned long *val);