.. | .. |
---|
145 | 145 | ktime_t t = watchdog_next_keepalive(wdd); |
---|
146 | 146 | |
---|
147 | 147 | if (t > 0) |
---|
148 | | - hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL); |
---|
| 148 | + hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL_HARD); |
---|
149 | 149 | } else { |
---|
150 | 150 | hrtimer_cancel(&wd_data->timer); |
---|
151 | 151 | } |
---|
.. | .. |
---|
164 | 164 | if (ktime_after(earliest_keepalive, now)) { |
---|
165 | 165 | hrtimer_start(&wd_data->timer, |
---|
166 | 166 | ktime_sub(earliest_keepalive, now), |
---|
167 | | - HRTIMER_MODE_REL); |
---|
| 167 | + HRTIMER_MODE_REL_HARD); |
---|
168 | 168 | return 0; |
---|
169 | 169 | } |
---|
170 | 170 | |
---|
.. | .. |
---|
959 | 959 | dev_set_name(&wd_data->dev, "watchdog%d", wdd->id); |
---|
960 | 960 | |
---|
961 | 961 | kthread_init_work(&wd_data->work, watchdog_ping_work); |
---|
962 | | - hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
---|
| 962 | + hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD); |
---|
963 | 963 | wd_data->timer.function = watchdog_timer_expired; |
---|
964 | 964 | |
---|
965 | 965 | if (wdd->id == 0) { |
---|
.. | .. |
---|
1007 | 1007 | __module_get(wdd->ops->owner); |
---|
1008 | 1008 | get_device(&wd_data->dev); |
---|
1009 | 1009 | if (handle_boot_enabled) |
---|
1010 | | - hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL); |
---|
| 1010 | + hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL_HARD); |
---|
1011 | 1011 | else |
---|
1012 | 1012 | pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n", |
---|
1013 | 1013 | wdd->id); |
---|