Loading arch/x86/kvm/kvm_cache_regs.h +7 −0 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,13 @@ static inline void kvm_register_mark_available(struct kvm_vcpu *vcpu, __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); } } static inline void kvm_register_clear_available(struct kvm_vcpu *vcpu, enum kvm_reg reg) { __clear_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); __clear_bit(reg, (unsigned long *)&vcpu->arch.regs_dirty); } static inline void kvm_register_mark_dirty(struct kvm_vcpu *vcpu, static inline void kvm_register_mark_dirty(struct kvm_vcpu *vcpu, enum kvm_reg reg) enum kvm_reg reg) { { Loading arch/x86/kvm/svm/svm.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -3873,10 +3873,8 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu) vcpu->arch.apf.host_apf_flags = vcpu->arch.apf.host_apf_flags = kvm_read_and_reset_apf_flags(); kvm_read_and_reset_apf_flags(); if (npt_enabled) { if (npt_enabled) vcpu->arch.regs_avail &= ~(1 << VCPU_EXREG_PDPTR); kvm_register_clear_available(vcpu, VCPU_EXREG_PDPTR); vcpu->arch.regs_dirty &= ~(1 << VCPU_EXREG_PDPTR); } /* /* * We need to handle MC intercepts here before the vcpu has a chance to * We need to handle MC intercepts here before the vcpu has a chance to Loading Loading
arch/x86/kvm/kvm_cache_regs.h +7 −0 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,13 @@ static inline void kvm_register_mark_available(struct kvm_vcpu *vcpu, __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); } } static inline void kvm_register_clear_available(struct kvm_vcpu *vcpu, enum kvm_reg reg) { __clear_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); __clear_bit(reg, (unsigned long *)&vcpu->arch.regs_dirty); } static inline void kvm_register_mark_dirty(struct kvm_vcpu *vcpu, static inline void kvm_register_mark_dirty(struct kvm_vcpu *vcpu, enum kvm_reg reg) enum kvm_reg reg) { { Loading
arch/x86/kvm/svm/svm.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -3873,10 +3873,8 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu) vcpu->arch.apf.host_apf_flags = vcpu->arch.apf.host_apf_flags = kvm_read_and_reset_apf_flags(); kvm_read_and_reset_apf_flags(); if (npt_enabled) { if (npt_enabled) vcpu->arch.regs_avail &= ~(1 << VCPU_EXREG_PDPTR); kvm_register_clear_available(vcpu, VCPU_EXREG_PDPTR); vcpu->arch.regs_dirty &= ~(1 << VCPU_EXREG_PDPTR); } /* /* * We need to handle MC intercepts here before the vcpu has a chance to * We need to handle MC intercepts here before the vcpu has a chance to Loading