diff options
Diffstat (limited to 'debian/patches-rt/posix-timers-move-rcu-out-of-union.patch')
-rw-r--r-- | debian/patches-rt/posix-timers-move-rcu-out-of-union.patch | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/debian/patches-rt/posix-timers-move-rcu-out-of-union.patch b/debian/patches-rt/posix-timers-move-rcu-out-of-union.patch deleted file mode 100644 index a9c533dfe..000000000 --- a/debian/patches-rt/posix-timers-move-rcu-out-of-union.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Date: Mon, 27 May 2019 16:54:05 +0200 -Subject: [PATCH] posix-timers: move rcu out of union -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz - -On RT the timer can be preempted while running and therefore we wait -with timer_wait_for_callback() for the timer to complete (instead of -busy looping). The RCU-readlock is held to ensure that this posix timer -is not removed while we wait on it. -If the timer is removed then it invokes call_rcu() with a pointer that -is shared with the hrtimer because it is part of the same union. -In order to avoid any possible side effects I am moving the rcu pointer -out of the union. - -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - include/linux/posix-timers.h | 2 +- - kernel/time/posix-timers.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - ---- a/include/linux/posix-timers.h -+++ b/include/linux/posix-timers.h -@@ -114,8 +114,8 @@ struct k_itimer { - struct { - struct alarm alarmtimer; - } alarm; -- struct rcu_head rcu; - } it; -+ struct rcu_head rcu; - }; - - void run_posix_cpu_timers(struct task_struct *task); ---- a/kernel/time/posix-timers.c -+++ b/kernel/time/posix-timers.c -@@ -442,7 +442,7 @@ static struct k_itimer * alloc_posix_tim - - static void k_itimer_rcu_free(struct rcu_head *head) - { -- struct k_itimer *tmr = container_of(head, struct k_itimer, it.rcu); -+ struct k_itimer *tmr = container_of(head, struct k_itimer, rcu); - - kmem_cache_free(posix_timers_cache, tmr); - } -@@ -459,7 +459,7 @@ static void release_posix_timer(struct k - } - put_pid(tmr->it_pid); - sigqueue_free(tmr->sigq); -- call_rcu(&tmr->it.rcu, k_itimer_rcu_free); -+ call_rcu(&tmr->rcu, k_itimer_rcu_free); - } - - static int common_timer_create(struct k_itimer *new_timer) |