diff options
Diffstat (limited to 'debian/patches-rt/timers-prepare-for-full-preemption.patch')
-rw-r--r-- | debian/patches-rt/timers-prepare-for-full-preemption.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/debian/patches-rt/timers-prepare-for-full-preemption.patch b/debian/patches-rt/timers-prepare-for-full-preemption.patch deleted file mode 100644 index 7a6dd5a23..000000000 --- a/debian/patches-rt/timers-prepare-for-full-preemption.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: Ingo Molnar <mingo@elte.hu> -Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: timers: Prepare for full preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz - -When softirqs can be preempted we need to make sure that cancelling -the timer from the active thread can not deadlock vs. a running timer -callback. Add a waitqueue to resolve that. - -Signed-off-by: Ingo Molnar <mingo@elte.hu> -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> ---- - include/linux/timer.h | 2 +- - kernel/time/timer.c | 5 +++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - ---- a/include/linux/timer.h -+++ b/include/linux/timer.h -@@ -172,7 +172,7 @@ extern void add_timer(struct timer_list - - extern int try_to_del_timer_sync(struct timer_list *timer); - --#ifdef CONFIG_SMP -+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) - extern int del_timer_sync(struct timer_list *timer); - #else - # define del_timer_sync(t) del_timer(t) ---- a/kernel/time/timer.c -+++ b/kernel/time/timer.c -@@ -1236,7 +1236,7 @@ int try_to_del_timer_sync(struct timer_l - } - EXPORT_SYMBOL(try_to_del_timer_sync); - --#ifdef CONFIG_SMP -+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) - static int __del_timer_sync(struct timer_list *timer) - { - struct timer_base *base; -@@ -1381,7 +1381,8 @@ static void expire_timers(struct timer_b - - fn = timer->function; - -- if (timer->flags & TIMER_IRQSAFE) { -+ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && -+ timer->flags & TIMER_IRQSAFE) { - raw_spin_unlock(&base->lock); - call_timer_fn(timer, fn, baseclk); - base->running_timer = NULL; |