diff options
Diffstat (limited to 'arch/x86/kvm/timer.c')
| -rw-r--r-- | arch/x86/kvm/timer.c | 26 | 
1 files changed, 4 insertions, 22 deletions
diff --git a/arch/x86/kvm/timer.c b/arch/x86/kvm/timer.c index ae432ea1cd8..6b85cc647f3 100644 --- a/arch/x86/kvm/timer.c +++ b/arch/x86/kvm/timer.c @@ -18,9 +18,10 @@  #include <linux/atomic.h>  #include "kvm_timer.h" -static int __kvm_timer_fn(struct kvm_vcpu *vcpu, struct kvm_timer *ktimer) +enum hrtimer_restart kvm_timer_fn(struct hrtimer *data)  { -	int restart_timer = 0; +	struct kvm_timer *ktimer = container_of(data, struct kvm_timer, timer); +	struct kvm_vcpu *vcpu = ktimer->vcpu;  	wait_queue_head_t *q = &vcpu->wq;  	/* @@ -40,26 +41,7 @@ static int __kvm_timer_fn(struct kvm_vcpu *vcpu, struct kvm_timer *ktimer)  	if (ktimer->t_ops->is_periodic(ktimer)) {  		hrtimer_add_expires_ns(&ktimer->timer, ktimer->period); -		restart_timer = 1; -	} - -	return restart_timer; -} - -enum hrtimer_restart kvm_timer_fn(struct hrtimer *data) -{ -	int restart_timer; -	struct kvm_vcpu *vcpu; -	struct kvm_timer *ktimer = container_of(data, struct kvm_timer, timer); - -	vcpu = ktimer->vcpu; -	if (!vcpu) -		return HRTIMER_NORESTART; - -	restart_timer = __kvm_timer_fn(vcpu, ktimer); -	if (restart_timer)  		return HRTIMER_RESTART; -	else +	} else  		return HRTIMER_NORESTART;  } -  |