From: Isaku Yamahata Wire userpace read/write (KVM_GET_MSRS, KVM_SET_MSRS) of TSCDEADLINE MSR to the vendor backend to update the VMCS field of GUEST TSCDEADLINE and GUEST TSCDEADLINE shadow. Signed-off-by: Isaku Yamahata --- arch/x86/kvm/lapic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index ee15d3bf5ef9..080245f6dac1 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -2754,6 +2754,10 @@ u64 kvm_get_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu) if (!kvm_apic_present(vcpu) || !apic_lvtt_tscdeadline(apic)) return 0; + if (apic->lapic_timer.apic_virt_timer_in_use) + apic->lapic_timer.tscdeadline = + kvm_x86_call(get_guest_tsc_deadline_virt)(vcpu); + return apic->lapic_timer.tscdeadline; } @@ -2766,6 +2770,8 @@ void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data) hrtimer_cancel(&apic->lapic_timer.timer); apic->lapic_timer.tscdeadline = data; + if (apic->lapic_timer.apic_virt_timer_in_use) + kvm_x86_call(set_guest_tsc_deadline_virt)(vcpu, data); start_apic_timer(apic); } -- 2.45.2