hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/watchdog/watchdog_dev.c
....@@ -145,7 +145,7 @@
145145 ktime_t t = watchdog_next_keepalive(wdd);
146146
147147 if (t > 0)
148
- hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL);
148
+ hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL_HARD);
149149 } else {
150150 hrtimer_cancel(&wd_data->timer);
151151 }
....@@ -164,7 +164,7 @@
164164 if (ktime_after(earliest_keepalive, now)) {
165165 hrtimer_start(&wd_data->timer,
166166 ktime_sub(earliest_keepalive, now),
167
- HRTIMER_MODE_REL);
167
+ HRTIMER_MODE_REL_HARD);
168168 return 0;
169169 }
170170
....@@ -959,7 +959,7 @@
959959 dev_set_name(&wd_data->dev, "watchdog%d", wdd->id);
960960
961961 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);
963963 wd_data->timer.function = watchdog_timer_expired;
964964
965965 if (wdd->id == 0) {
....@@ -1007,7 +1007,7 @@
10071007 __module_get(wdd->ops->owner);
10081008 get_device(&wd_data->dev);
10091009 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);
10111011 else
10121012 pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n",
10131013 wdd->id);