summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 04:21:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 04:22:00 +0000
commit9b228b28ccd91b2f915f0575b7d67a8610b72d30 (patch)
tree3197d6e68ec1f053a5d60a1e0d84fa334ac486f1 /debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
parentMerging upstream version 4.19.304. (diff)
downloadlinux-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.patch24
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(&current->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);