diff options
Diffstat (limited to 'debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch')
-rw-r--r-- | debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch b/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch new file mode 100644 index 000000000..29760ba4c --- /dev/null +++ b/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch @@ -0,0 +1,34 @@ +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Fri, 9 Aug 2019 15:25:21 +0200 +Subject: [PATCH] hrtimer: Allow raw wakeups during boot +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.3-rt1.tar.xz + +There are a few wake-up timers during the early boot which are essencial for +the system to make progress. At this stage there are no softirq spawn for the +softirq processing so there is no timer processing in softirq. +The wakeup in question: + +smpboot_create_thread() + -> kthread_create_on_cpu() + -> kthread_bind() + -> wait_task_inactive() + -> schedule_hrtimeout() + +Let the timer fire in hardirq context during the system boot. + +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + kernel/time/hrtimer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -1816,7 +1816,7 @@ static void __hrtimer_init_sleeper(struc + * expiry. + */ + if (IS_ENABLED(CONFIG_PREEMPT_RT)) { +- if (task_is_realtime(current) && !(mode & HRTIMER_MODE_SOFT)) ++ if ((task_is_realtime(current) && !(mode & HRTIMER_MODE_SOFT)) || system_state != SYSTEM_RUNNING) + mode |= HRTIMER_MODE_HARD; + } + |