diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 04:21:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 04:22:00 +0000 |
commit | 9b228b28ccd91b2f915f0575b7d67a8610b72d30 (patch) | |
tree | 3197d6e68ec1f053a5d60a1e0d84fa334ac486f1 /debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch | |
parent | Merging upstream version 4.19.304. (diff) | |
download | linux-9b228b28ccd91b2f915f0575b7d67a8610b72d30.tar.xz linux-9b228b28ccd91b2f915f0575b7d67a8610b72d30.zip |
Merging debian version 4.19.304-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch')
-rw-r--r-- | debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch index 5e9ac99d4..e299e22d6 100644 --- a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch +++ b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 099/353] hrtimers: Prepare full preemption -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d28d53d40629674ff58c7686726104f107c8e479 +Subject: [PATCH 099/354] hrtimers: Prepare full preemption +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea1a57d171dca96fde02fae81ca8d97eb756b8c6 Make cancellation of a running callback in softirq context safe against preemption. @@ -35,7 +35,7 @@ index d69ad801eb80..82d0f52414a6 100644 /* diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h -index cbd041b22088..8714f1a37d84 100644 +index 4b7ef1c6decb..684241f87e4d 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -22,6 +22,7 @@ @@ -107,7 +107,7 @@ index 56af8a97cf2d..dec68f9dab7b 100644 } EXPORT_SYMBOL_GPL(alarm_cancel); diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c -index 23c89873bf60..ab38b51a96cc 100644 +index 1b2aeab41c0b..478ff82abd33 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -957,6 +957,33 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval) @@ -184,10 +184,10 @@ index 2e2b335ef101..7650ee736964 100644 } expires = timeval_to_ktime(value->it_value); diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c -index 1234868b3b03..36ee80652208 100644 +index 8768ce2c4bf5..eae555df7ea3 100644 --- a/kernel/time/posix-timers.c +++ b/kernel/time/posix-timers.c -@@ -463,7 +463,7 @@ static struct k_itimer * alloc_posix_timer(void) +@@ -468,7 +468,7 @@ static struct k_itimer * alloc_posix_timer(void) static void k_itimer_rcu_free(struct rcu_head *head) { @@ -196,7 +196,7 @@ index 1234868b3b03..36ee80652208 100644 kmem_cache_free(posix_timers_cache, tmr); } -@@ -480,7 +480,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set) +@@ -485,7 +485,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set) } put_pid(tmr->it_pid); sigqueue_free(tmr->sigq); @@ -205,7 +205,7 @@ index 1234868b3b03..36ee80652208 100644 } static int common_timer_create(struct k_itimer *new_timer) -@@ -821,6 +821,22 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires, +@@ -826,6 +826,22 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires, hrtimer_start_expires(timer, HRTIMER_MODE_ABS); } @@ -228,7 +228,7 @@ index 1234868b3b03..36ee80652208 100644 static int common_hrtimer_try_to_cancel(struct k_itimer *timr) { return hrtimer_try_to_cancel(&timr->it.real.timer); -@@ -885,6 +901,7 @@ static int do_timer_settime(timer_t timer_id, int flags, +@@ -890,6 +906,7 @@ static int do_timer_settime(timer_t timer_id, int flags, if (!timr) return -EINVAL; @@ -236,7 +236,7 @@ index 1234868b3b03..36ee80652208 100644 kc = timr->kclock; if (WARN_ON_ONCE(!kc || !kc->timer_set)) error = -EINVAL; -@@ -893,9 +910,12 @@ static int do_timer_settime(timer_t timer_id, int flags, +@@ -898,9 +915,12 @@ static int do_timer_settime(timer_t timer_id, int flags, unlock_timer(timr, flag); if (error == TIMER_RETRY) { @@ -249,7 +249,7 @@ index 1234868b3b03..36ee80652208 100644 return error; } -@@ -977,10 +997,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id) +@@ -982,10 +1002,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id) if (!timer) return -EINVAL; @@ -265,7 +265,7 @@ index 1234868b3b03..36ee80652208 100644 spin_lock(¤t->sighand->siglock); list_del(&timer->list); -@@ -1006,8 +1031,18 @@ static void itimer_delete(struct k_itimer *timer) +@@ -1011,8 +1036,18 @@ static void itimer_delete(struct k_itimer *timer) retry_delete: spin_lock_irqsave(&timer->it_lock, flags); |