projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dcca1a6
)
KVM: SVM: Add clean-bit for DR6 and DR7
author
Joerg Roedel
<joerg.roedel@amd.com>
Fri, 3 Dec 2010 10:45:55 +0000
(11:45 +0100)
committer
Avi Kivity
<avi@redhat.com>
Wed, 12 Jan 2011 09:30:31 +0000
(11:30 +0200)
This patch implements the clean-bit for the dr6 and dr7
debug registers in the vmcb.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/svm.c
patch
|
blob
|
history
diff --git
a/arch/x86/kvm/svm.c
b/arch/x86/kvm/svm.c
index 0f55b8a69540ec68fe6a84aca2d299caaa0533a9..e9224ca090a156cda5aea951890434691ea17042 100644
(file)
--- a/
arch/x86/kvm/svm.c
+++ b/
arch/x86/kvm/svm.c
@@
-193,6
+193,7
@@
enum {
VMCB_INTR, /* int_ctl, int_vector */
VMCB_NPT, /* npt_en, nCR3, gPAT */
VMCB_CR, /* CR0, CR3, CR4, EFER */
+ VMCB_DR, /* DR6, DR7 */
VMCB_DIRTY_MAX,
};
@@
-1484,6
+1485,8
@@
static void svm_guest_debug(struct kvm_vcpu *vcpu, struct kvm_guest_debug *dbg)
else
svm->vmcb->save.dr7 = vcpu->arch.dr7;
+ mark_dirty(svm->vmcb, VMCB_DR);
+
update_db_intercept(vcpu);
}
@@
-1506,6
+1509,7
@@
static void svm_set_dr7(struct kvm_vcpu *vcpu, unsigned long value)
struct vcpu_svm *svm = to_svm(vcpu);
svm->vmcb->save.dr7 = value;
+ mark_dirty(svm->vmcb, VMCB_DR);
}
static int pf_interception(struct vcpu_svm *svm)