diff options
Diffstat (limited to 'debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch')
-rw-r--r-- | debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch new file mode 100644 index 000000000..7297c027c --- /dev/null +++ b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch @@ -0,0 +1,37 @@ +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Fri, 29 Apr 2022 11:02:18 -0500 +Subject: [PATCH 340/342] genirq: Add lost hunk to irq_forced_thread_fn(). +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d872802a6e9cfbe98d85409cd78d88b6ea9ffc51 + +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 683debac6759..6ee6d144060f 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; + } + |