diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2010-12-03 05:45:56 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-01-12 04:30:33 -0500 |
commit | 17a703cb14055c5dac7f34672d368c4d8f6ffe49 (patch) | |
tree | 9352263f7e7f790b42cf560da34bddc4691531f7 | |
parent | 72214b9601f2b6c8343ea57b0e405f9da7a92d29 (diff) |
KVM: SVM: Add clean-bit for GDT and IDT
This patch implements the clean-bit for the base and limit
of the gdt and idt in the vmcb.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | arch/x86/kvm/svm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index e9224ca090a1..cbfb2ac8b4da 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
@@ -194,6 +194,7 @@ enum { | |||
194 | VMCB_NPT, /* npt_en, nCR3, gPAT */ | 194 | VMCB_NPT, /* npt_en, nCR3, gPAT */ |
195 | VMCB_CR, /* CR0, CR3, CR4, EFER */ | 195 | VMCB_CR, /* CR0, CR3, CR4, EFER */ |
196 | VMCB_DR, /* DR6, DR7 */ | 196 | VMCB_DR, /* DR6, DR7 */ |
197 | VMCB_DT, /* GDT, IDT */ | ||
197 | VMCB_DIRTY_MAX, | 198 | VMCB_DIRTY_MAX, |
198 | }; | 199 | }; |
199 | 200 | ||
@@ -1304,6 +1305,7 @@ static void svm_set_idt(struct kvm_vcpu *vcpu, struct desc_ptr *dt) | |||
1304 | 1305 | ||
1305 | svm->vmcb->save.idtr.limit = dt->size; | 1306 | svm->vmcb->save.idtr.limit = dt->size; |
1306 | svm->vmcb->save.idtr.base = dt->address ; | 1307 | svm->vmcb->save.idtr.base = dt->address ; |
1308 | mark_dirty(svm->vmcb, VMCB_DT); | ||
1307 | } | 1309 | } |
1308 | 1310 | ||
1309 | static void svm_get_gdt(struct kvm_vcpu *vcpu, struct desc_ptr *dt) | 1311 | static void svm_get_gdt(struct kvm_vcpu *vcpu, struct desc_ptr *dt) |
@@ -1320,6 +1322,7 @@ static void svm_set_gdt(struct kvm_vcpu *vcpu, struct desc_ptr *dt) | |||
1320 | 1322 | ||
1321 | svm->vmcb->save.gdtr.limit = dt->size; | 1323 | svm->vmcb->save.gdtr.limit = dt->size; |
1322 | svm->vmcb->save.gdtr.base = dt->address ; | 1324 | svm->vmcb->save.gdtr.base = dt->address ; |
1325 | mark_dirty(svm->vmcb, VMCB_DT); | ||
1323 | } | 1326 | } |
1324 | 1327 | ||
1325 | static void svm_decache_cr0_guest_bits(struct kvm_vcpu *vcpu) | 1328 | static void svm_decache_cr0_guest_bits(struct kvm_vcpu *vcpu) |