.. | .. |
---|
67 | 67 | static void soft_timer_start(struct hrtimer *hrt, u64 ns) |
---|
68 | 68 | { |
---|
69 | 69 | hrtimer_start(hrt, ktime_add_ns(ktime_get(), ns), |
---|
70 | | - HRTIMER_MODE_ABS); |
---|
| 70 | + HRTIMER_MODE_ABS_HARD); |
---|
71 | 71 | } |
---|
72 | 72 | |
---|
73 | 73 | static void soft_timer_cancel(struct hrtimer *hrt, struct work_struct *work) |
---|
.. | .. |
---|
638 | 638 | vcpu_ptimer(vcpu)->cntvoff = 0; |
---|
639 | 639 | |
---|
640 | 640 | INIT_WORK(&timer->expired, kvm_timer_inject_irq_work); |
---|
641 | | - hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); |
---|
| 641 | + hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD); |
---|
642 | 642 | timer->bg_timer.function = kvm_bg_timer_expire; |
---|
643 | 643 | |
---|
644 | | - hrtimer_init(&timer->phys_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); |
---|
| 644 | + hrtimer_init(&timer->phys_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD); |
---|
645 | 645 | timer->phys_timer.function = kvm_phys_timer_expire; |
---|
646 | 646 | |
---|
647 | 647 | vtimer->irq.irq = default_vtimer_irq.irq; |
---|