diff --git a/debian/changelog b/debian/changelog index 33451b292..3d03c5b95 100644 --- a/debian/changelog +++ b/debian/changelog @@ -311,6 +311,8 @@ linux (4.19.138-1) UNRELEASED; urgency=medium * [rt] Update to 4.19.135-rt60 * [rt] Refresh "net: Use skbufhead with raw lock" for context changes in 4.19.136 + * [rt] Refresh "timers: Prepare for full preemption" for context changes in + 4.19.138 -- Salvatore Bonaccorso Tue, 04 Aug 2020 16:33:40 +0200 diff --git a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch index b8dcca3f6..89102c52c 100644 --- a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch +++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch @@ -19,11 +19,9 @@ Signed-off-by: Thomas Gleixner kernel/time/timer.c | 45 +++++++++++++++++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 7 deletions(-) -diff --git a/include/linux/timer.h b/include/linux/timer.h -index 7b066fd38248..54627d046b3a 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h -@@ -172,7 +172,7 @@ extern void add_timer(struct timer_list *timer); +@@ -172,7 +172,7 @@ extern int try_to_del_timer_sync(struct timer_list *timer); @@ -32,11 +30,9 @@ index 7b066fd38248..54627d046b3a 100644 extern int del_timer_sync(struct timer_list *timer); #else # define del_timer_sync(t) del_timer(t) -diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 541c7222ffc2..c0058e62a3fc 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -498,11 +498,14 @@ void resched_cpu(int cpu) +@@ -498,11 +498,14 @@ */ int get_nohz_timer_target(void) { @@ -53,7 +49,7 @@ index 541c7222ffc2..c0058e62a3fc 100644 rcu_read_lock(); for_each_domain(cpu, sd) { -@@ -521,6 +524,8 @@ int get_nohz_timer_target(void) +@@ -521,6 +524,8 @@ cpu = housekeeping_any_cpu(HK_FLAG_TIMER); unlock: rcu_read_unlock(); @@ -62,19 +58,17 @@ index 541c7222ffc2..c0058e62a3fc 100644 return cpu; } -diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 6c54cf481fde..458fa0189514 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -44,6 +44,7 @@ - #include +@@ -45,6 +45,7 @@ #include #include + #include +#include #include #include -@@ -197,6 +198,9 @@ EXPORT_SYMBOL(jiffies_64); +@@ -198,6 +199,9 @@ struct timer_base { raw_spinlock_t lock; struct timer_list *running_timer; @@ -84,7 +78,7 @@ index 6c54cf481fde..458fa0189514 100644 unsigned long clk; unsigned long next_expiry; unsigned int cpu; -@@ -1189,6 +1193,33 @@ void add_timer_on(struct timer_list *timer, int cpu) +@@ -1190,6 +1194,33 @@ } EXPORT_SYMBOL_GPL(add_timer_on); @@ -118,7 +112,7 @@ index 6c54cf481fde..458fa0189514 100644 /** * del_timer - deactivate a timer. * @timer: the timer to be deactivated -@@ -1244,7 +1275,7 @@ int try_to_del_timer_sync(struct timer_list *timer) +@@ -1245,7 +1276,7 @@ } EXPORT_SYMBOL(try_to_del_timer_sync); @@ -127,7 +121,7 @@ index 6c54cf481fde..458fa0189514 100644 /** * del_timer_sync - deactivate a timer and wait for the handler to finish. * @timer: the timer to be deactivated -@@ -1304,7 +1335,7 @@ int del_timer_sync(struct timer_list *timer) +@@ -1305,7 +1336,7 @@ int ret = try_to_del_timer_sync(timer); if (ret >= 0) return ret; @@ -136,7 +130,7 @@ index 6c54cf481fde..458fa0189514 100644 } } EXPORT_SYMBOL(del_timer_sync); -@@ -1365,13 +1396,16 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head) +@@ -1366,13 +1397,16 @@ fn = timer->function; @@ -154,7 +148,7 @@ index 6c54cf481fde..458fa0189514 100644 raw_spin_lock_irq(&base->lock); } } -@@ -1694,8 +1728,8 @@ static inline void __run_timers(struct timer_base *base) +@@ -1702,8 +1736,8 @@ while (levels--) expire_timers(base, heads + levels); } @@ -164,7 +158,7 @@ index 6c54cf481fde..458fa0189514 100644 } /* -@@ -1940,6 +1974,9 @@ static void __init init_timer_cpu(int cpu) +@@ -1948,6 +1982,9 @@ base->cpu = cpu; raw_spin_lock_init(&base->lock); base->clk = jiffies; @@ -174,6 +168,3 @@ index 6c54cf481fde..458fa0189514 100644 } } --- -2.17.1 -