summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch')
-rw-r--r--debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
new file mode 100644
index 000000000..b2cf769f2
--- /dev/null
+++ b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
@@ -0,0 +1,38 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Oct 2022 16:15:56 +0200
+Subject: [PATCH 343/351] Revert "workqueue: Use local irq lock instead of irq
+ disable regions"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=673b95794c85f76d4c99994d288cc41ecc8b02bd
+
+This reverts the PREEMPT_RT related changes to workqueue. It reverts the
+usage of local_locks() and cpu_chill().
+
+This is a preparation to pull in the PREEMPT_RT related changes which
+were merged upstream.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[wagi: 827b6f6962da ("workqueue: rework") already reverted
+ most of the changes, except the missing update in
+ put_pwq_unlocked.]
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/workqueue.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index c047a647146e..e0ab9febe11f 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -1496,11 +1496,9 @@ EXPORT_SYMBOL(queue_work_on);
+ void delayed_work_timer_fn(struct timer_list *t)
+ {
+ struct delayed_work *dwork = from_timer(dwork, t, timer);
+- unsigned long flags;
+
+- local_irq_save(flags);
++ /* should have been called from irqsafe timer with irq already off */
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
+- local_irq_restore(flags);
+ }
+ EXPORT_SYMBOL(delayed_work_timer_fn);
+