| .. | .. |
|---|
| 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; |
|---|