|
|
@@ -305,12 +305,6 @@ static void kvm_timer_update_state(struct kvm_vcpu *vcpu)
|
|
|
struct arch_timer_context *vtimer = vcpu_vtimer(vcpu);
|
|
|
struct arch_timer_context *ptimer = vcpu_ptimer(vcpu);
|
|
|
|
|
|
- /*
|
|
|
- * If userspace modified the timer registers via SET_ONE_REG before
|
|
|
- * the vgic was initialized, we mustn't set the vtimer->irq.level value
|
|
|
- * because the guest would never see the interrupt. Instead wait
|
|
|
- * until we call this function from kvm_timer_flush_hwstate.
|
|
|
- */
|
|
|
if (unlikely(!timer->enabled))
|
|
|
return;
|
|
|
|
|
|
@@ -489,24 +483,6 @@ bool kvm_timer_should_notify_user(struct kvm_vcpu *vcpu)
|
|
|
ptimer->irq.level != plevel;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * kvm_timer_flush_hwstate - prepare timers before running the vcpu
|
|
|
- * @vcpu: The vcpu pointer
|
|
|
- *
|
|
|
- * Check if the virtual timer has expired while we were running in the host,
|
|
|
- * and inject an interrupt if that was the case, making sure the timer is
|
|
|
- * masked or disabled on the host so that we keep executing. Also schedule a
|
|
|
- * software timer for the physical timer if it is enabled.
|
|
|
- */
|
|
|
-void kvm_timer_flush_hwstate(struct kvm_vcpu *vcpu)
|
|
|
-{
|
|
|
- struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu;
|
|
|
- struct arch_timer_context *ptimer = vcpu_ptimer(vcpu);
|
|
|
-
|
|
|
- if (unlikely(!timer->enabled))
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
void kvm_timer_vcpu_put(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu;
|