watchdog: core: make sure the watchdog_worker is not deferred
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 18 Jan 2018 11:11:21 +0000 (12:11 +0100)
committerWim Van Sebroeck <wim@iguana.be>
Sun, 21 Jan 2018 11:44:59 +0000 (12:44 +0100)
commit1ff688209e2ed23f699269b9733993e2ce123fd2
treea5c0ec3353b11e0f94999b6fe971f953c7149d83
parent1d2e5eb521a7edeac9e9decd3d526b04e307bb41
watchdog: core: make sure the watchdog_worker is not deferred

commit 4cd13c21b207e ("softirq: Let ksoftirqd do its job") has the
effect of deferring timer handling in case of high CPU load, hence
delaying the delayed work allthought the worker is running which
high realtime priority.

As hrtimers are not managed by softirqs, this patch replaces the
delayed work by a plain work and uses an hrtimer to schedule that work.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Reviewed-by: Guenter Roeck <Linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/watchdog_dev.c