diff options
| -rw-r--r-- | arch/x86/kvm/lapic.c | 2 | ||||
| -rw-r--r-- | arch/x86/kvm/svm.c | 2 | ||||
| -rw-r--r-- | arch/x86/kvm/x86.h | 5 |
3 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 954e98a8c2e3..1c425443a41a 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
| @@ -1595,7 +1595,7 @@ void kvm_lapic_reset(struct kvm_vcpu *vcpu, bool init_event) | |||
| 1595 | for (i = 0; i < APIC_LVT_NUM; i++) | 1595 | for (i = 0; i < APIC_LVT_NUM; i++) |
| 1596 | apic_set_reg(apic, APIC_LVTT + 0x10 * i, APIC_LVT_MASKED); | 1596 | apic_set_reg(apic, APIC_LVTT + 0x10 * i, APIC_LVT_MASKED); |
| 1597 | apic_update_lvtt(apic); | 1597 | apic_update_lvtt(apic); |
| 1598 | if (!(vcpu->kvm->arch.disabled_quirks & KVM_QUIRK_LINT0_REENABLED)) | 1598 | if (kvm_check_has_quirk(vcpu->kvm, KVM_QUIRK_LINT0_REENABLED)) |
| 1599 | apic_set_reg(apic, APIC_LVT0, | 1599 | apic_set_reg(apic, APIC_LVT0, |
| 1600 | SET_APIC_DELIVERY_MODE(0, APIC_MODE_EXTINT)); | 1600 | SET_APIC_DELIVERY_MODE(0, APIC_MODE_EXTINT)); |
| 1601 | apic_manage_nmi_watchdog(apic, kvm_apic_get_reg(apic, APIC_LVT0)); | 1601 | apic_manage_nmi_watchdog(apic, kvm_apic_get_reg(apic, APIC_LVT0)); |
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index bbc678a66b18..8cbec765b08d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
| @@ -1672,7 +1672,7 @@ static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) | |||
| 1672 | * does not do it - this results in some delay at | 1672 | * does not do it - this results in some delay at |
| 1673 | * reboot | 1673 | * reboot |
| 1674 | */ | 1674 | */ |
| 1675 | if (!(vcpu->kvm->arch.disabled_quirks & KVM_QUIRK_CD_NW_CLEARED)) | 1675 | if (kvm_check_has_quirk(vcpu->kvm, KVM_QUIRK_CD_NW_CLEARED)) |
| 1676 | cr0 &= ~(X86_CR0_CD | X86_CR0_NW); | 1676 | cr0 &= ~(X86_CR0_CD | X86_CR0_NW); |
| 1677 | svm->vmcb->save.cr0 = cr0; | 1677 | svm->vmcb->save.cr0 = cr0; |
| 1678 | mark_dirty(svm->vmcb, VMCB_CR); | 1678 | mark_dirty(svm->vmcb, VMCB_CR); |
diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h index edc8cdcd786b..0ca2f3e4803c 100644 --- a/arch/x86/kvm/x86.h +++ b/arch/x86/kvm/x86.h | |||
| @@ -147,6 +147,11 @@ static inline void kvm_register_writel(struct kvm_vcpu *vcpu, | |||
| 147 | return kvm_register_write(vcpu, reg, val); | 147 | return kvm_register_write(vcpu, reg, val); |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | static inline bool kvm_check_has_quirk(struct kvm *kvm, u64 quirk) | ||
| 151 | { | ||
| 152 | return !(kvm->arch.disabled_quirks & quirk); | ||
| 153 | } | ||
| 154 | |||
| 150 | void kvm_before_handle_nmi(struct kvm_vcpu *vcpu); | 155 | void kvm_before_handle_nmi(struct kvm_vcpu *vcpu); |
| 151 | void kvm_after_handle_nmi(struct kvm_vcpu *vcpu); | 156 | void kvm_after_handle_nmi(struct kvm_vcpu *vcpu); |
| 152 | void kvm_set_pending_timer(struct kvm_vcpu *vcpu); | 157 | void kvm_set_pending_timer(struct kvm_vcpu *vcpu); |
