[PATCH RT 1/3] rt: timers: use CONFIG_PREEMPT_RT_FULL instead of CONFIG_PREEMPT_RT
"Luis Claudio R. Goncalves" <[email protected]> Tue, 8 Aug 2023 13:35:18 -0300
| Newsgroups | org.kernel.vger.stable-rt,org.kernel.vger.linux-rt-users |
|---|---|
| Message-ID | <[email protected]> |
v4.14.320-rt152-rc1 stable review patch.
If anyone has any objections, please let me know.
-----------
Commit 095ff4885a17 ("timers: Prepare support for PREEMPT_RT") had references
to CONFIG_PREEMPT_RT, that does not exist in v4.14-rt.
André Pribil reported that a tcdrain() call from userspace was spinning
forever due to an endless loop in del_timer_sync(). He was able to fix the
problem by Replacing CONFIG_PREEMPT_RT with CONFIG_PREEMPT_RT_FULL in that
code.
Reported-by: André Pribil <[email protected]>
Fixes: 095ff4885a17 ("timers: Prepare support for PREEMPT_RT")
Signed-off-by: Luis Claudio R. Goncalves <[email protected]>
---
kernel/time/timer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index a3f229dc75ec..e1b5dfa260a4 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -198,7 +198,7 @@ EXPORT_SYMBOL(jiffies_64);
struct timer_base {
raw_spinlock_t lock;
struct timer_list *running_timer;
-#ifdef CONFIG_PREEMPT_RT
+#ifdef CONFIG_PREEMPT_RT_FULL
spinlock_t expiry_lock;
atomic_t timer_waiters;
#endif
@@ -1207,7 +1207,7 @@ int try_to_del_timer_sync(struct timer_list *timer)
}
EXPORT_SYMBOL(try_to_del_timer_sync);
-#ifdef CONFIG_PREEMPT_RT
+#ifdef CONFIG_PREEMPT_RT_FULL
static __init void timer_base_init_expiry_lock(struct timer_base *base)
{
spin_lock_init(&base->expiry_lock);
--
2.41.0