mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
72214b9601
commit
17a703cb14
|
@ -194,6 +194,7 @@ enum {
|
||||||
VMCB_NPT, /* npt_en, nCR3, gPAT */
|
VMCB_NPT, /* npt_en, nCR3, gPAT */
|
||||||
VMCB_CR, /* CR0, CR3, CR4, EFER */
|
VMCB_CR, /* CR0, CR3, CR4, EFER */
|
||||||
VMCB_DR, /* DR6, DR7 */
|
VMCB_DR, /* DR6, DR7 */
|
||||||
|
VMCB_DT, /* GDT, IDT */
|
||||||
VMCB_DIRTY_MAX,
|
VMCB_DIRTY_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1304,6 +1305,7 @@ static void svm_set_idt(struct kvm_vcpu *vcpu, struct desc_ptr *dt)
|
||||||
|
|
||||||
svm->vmcb->save.idtr.limit = dt->size;
|
svm->vmcb->save.idtr.limit = dt->size;
|
||||||
svm->vmcb->save.idtr.base = dt->address ;
|
svm->vmcb->save.idtr.base = dt->address ;
|
||||||
|
mark_dirty(svm->vmcb, VMCB_DT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void svm_get_gdt(struct kvm_vcpu *vcpu, struct desc_ptr *dt)
|
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)
|
||||||
|
|
||||||
svm->vmcb->save.gdtr.limit = dt->size;
|
svm->vmcb->save.gdtr.limit = dt->size;
|
||||||
svm->vmcb->save.gdtr.base = dt->address ;
|
svm->vmcb->save.gdtr.base = dt->address ;
|
||||||
|
mark_dirty(svm->vmcb, VMCB_DT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void svm_decache_cr0_guest_bits(struct kvm_vcpu *vcpu)
|
static void svm_decache_cr0_guest_bits(struct kvm_vcpu *vcpu)
|
||||||
|
|
Loading…
Reference in New Issue