diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 01:02:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 01:02:38 +0000 |
commit | 08b74a000942a380fe028845f92cd3a0dee827d5 (patch) | |
tree | aa78b4e12607c3e1fcce8d5cc42df4330792f118 /debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch | |
parent | Adding upstream version 4.19.249. (diff) | |
download | linux-08b74a000942a380fe028845f92cd3a0dee827d5.tar.xz linux-08b74a000942a380fe028845f92cd3a0dee827d5.zip |
Adding debian version 4.19.249-2.debian/4.19.249-2debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch')
-rw-r--r-- | debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch b/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch new file mode 100644 index 000000000..0c8b0e14e --- /dev/null +++ b/debian/patches-rt/0346-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch @@ -0,0 +1,41 @@ +From d379a82e852964afe457dcf44bf4a00fc59de389 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Fri, 29 Apr 2022 11:02:18 -0500 +Subject: [PATCH 346/347] genirq: Add lost hunk to irq_forced_thread_fn(). +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz + +The irq_settings_no_softirq_call() related handling got lost in process, +here are the missing bits. + +Reported-by: Martin Kaistra <martin.kaistra@linutronix.de> +Fixes: b0cf5c230e2a0 ("Merge tag 'v4.19.183' into linux-4.19.y-rt") +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Signed-off-by: Clark Williams <williams@redhat.com> +--- + kernel/irq/manage.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c +index 6c88d81399dd..8f710f1755d8 100644 +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -998,7 +998,15 @@ irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action) + irq_finalize_oneshot(desc, action); + if (!IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) + local_irq_enable(); +- local_bh_enable(); ++ /* ++ * Interrupts which have real time requirements can be set up ++ * to avoid softirq processing in the thread handler. This is ++ * safe as these interrupts do not raise soft interrupts. ++ */ ++ if (irq_settings_no_softirq_call(desc)) ++ _local_bh_enable(); ++ else ++ local_bh_enable(); + return ret; + } + +-- +2.36.1 + |