Loading arch/x86/kvm/x86.c +1 −1 Original line number Diff line number Diff line Loading @@ -1133,7 +1133,7 @@ static int __kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val) case 4: /* fall through */ case 6: if (val & 0xffffffff00000000ULL) if (!kvm_dr6_valid(val)) return -1; /* #GP */ vcpu->arch.dr6 = (val & DR6_VOLATILE) | kvm_dr6_fixed(vcpu); break; Loading arch/x86/kvm/x86.h +5 −0 Original line number Diff line number Diff line Loading @@ -360,6 +360,11 @@ static inline bool kvm_dr7_valid(u64 data) /* Bits [63:32] are reserved */ return !(data >> 32); } static inline bool kvm_dr6_valid(u64 data) { /* Bits [63:32] are reserved */ return !(data >> 32); } void kvm_load_guest_xsave_state(struct kvm_vcpu *vcpu); void kvm_load_host_xsave_state(struct kvm_vcpu *vcpu); Loading Loading
arch/x86/kvm/x86.c +1 −1 Original line number Diff line number Diff line Loading @@ -1133,7 +1133,7 @@ static int __kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val) case 4: /* fall through */ case 6: if (val & 0xffffffff00000000ULL) if (!kvm_dr6_valid(val)) return -1; /* #GP */ vcpu->arch.dr6 = (val & DR6_VOLATILE) | kvm_dr6_fixed(vcpu); break; Loading
arch/x86/kvm/x86.h +5 −0 Original line number Diff line number Diff line Loading @@ -360,6 +360,11 @@ static inline bool kvm_dr7_valid(u64 data) /* Bits [63:32] are reserved */ return !(data >> 32); } static inline bool kvm_dr6_valid(u64 data) { /* Bits [63:32] are reserved */ return !(data >> 32); } void kvm_load_guest_xsave_state(struct kvm_vcpu *vcpu); void kvm_load_host_xsave_state(struct kvm_vcpu *vcpu); Loading