summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch')
-rw-r--r--debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch151
1 files changed, 0 insertions, 151 deletions
diff --git a/debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch b/debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch
deleted file mode 100644
index 7a19662c0..000000000
--- a/debian/patches-rt/arch-Disable-softirq-stacks-on-PREEMPT_RT.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Date: Tue, 14 Jun 2022 20:18:14 +0200
-Subject: [PATCH] arch/*: Disable softirq stacks on PREEMPT_RT.
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.19/older/patches-5.19-rc8-rt9.tar.xz
-
-PREEMPT_RT preempts softirqs and the current implementation avoids
-do_softirq_own_stack() and only uses __do_softirq().
-
-Disable the unused softirqs stacks on PREEMPT_RT to save some memory and
-ensure that do_softirq_own_stack() is not used bwcause it is not expected.
-
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Link: https://lkml.kernel.org/r/CAK8P3a1QmeAscV-Ory-Dae4RoLvDSPEjEgFGQHR9U8jUervGuA@mail.gmail.com
----
- arch/arm/kernel/irq.c | 3 ++-
- arch/parisc/kernel/irq.c | 2 ++
- arch/powerpc/kernel/irq.c | 4 ++++
- arch/s390/include/asm/softirq_stack.h | 3 ++-
- arch/sh/kernel/irq.c | 2 ++
- arch/sparc/kernel/irq_64.c | 2 ++
- include/asm-generic/softirq_stack.h | 2 +-
- 7 files changed, 15 insertions(+), 3 deletions(-)
-
---- a/arch/arm/kernel/irq.c
-+++ b/arch/arm/kernel/irq.c
-@@ -70,6 +70,7 @@ static void __init init_irq_stacks(void)
- }
- }
-
-+#ifndef CONFIG_PREEMPT_RT
- static void ____do_softirq(void *arg)
- {
- __do_softirq();
-@@ -80,7 +81,7 @@ void do_softirq_own_stack(void)
- call_with_stack(____do_softirq, NULL,
- __this_cpu_read(irq_stack_ptr));
- }
--
-+#endif
- #endif
-
- int arch_show_interrupts(struct seq_file *p, int prec)
---- a/arch/parisc/kernel/irq.c
-+++ b/arch/parisc/kernel/irq.c
-@@ -480,10 +480,12 @@ static void execute_on_irq_stack(void *f
- *irq_stack_in_use = 1;
- }
-
-+#ifndef CONFIG_PREEMPT_RT
- void do_softirq_own_stack(void)
- {
- execute_on_irq_stack(__do_softirq, 0);
- }
-+#endif
- #endif /* CONFIG_IRQSTACKS */
-
- /* ONLY called from entry.S:intr_extint() */
---- a/arch/powerpc/kernel/irq.c
-+++ b/arch/powerpc/kernel/irq.c
-@@ -611,6 +611,7 @@ static inline void check_stack_overflow(
- }
- }
-
-+#ifndef CONFIG_PREEMPT_RT
- static __always_inline void call_do_softirq(const void *sp)
- {
- /* Temporarily switch r1 to sp, call __do_softirq() then restore r1. */
-@@ -629,6 +630,7 @@ static __always_inline void call_do_soft
- "r11", "r12"
- );
- }
-+#endif
-
- static __always_inline void call_do_irq(struct pt_regs *regs, void *sp)
- {
-@@ -747,10 +749,12 @@ void *mcheckirq_ctx[NR_CPUS] __read_most
- void *softirq_ctx[NR_CPUS] __read_mostly;
- void *hardirq_ctx[NR_CPUS] __read_mostly;
-
-+#ifndef CONFIG_PREEMPT_RT
- void do_softirq_own_stack(void)
- {
- call_do_softirq(softirq_ctx[smp_processor_id()]);
- }
-+#endif
-
- irq_hw_number_t virq_to_hw(unsigned int virq)
- {
---- a/arch/s390/include/asm/softirq_stack.h
-+++ b/arch/s390/include/asm/softirq_stack.h
-@@ -5,9 +5,10 @@
- #include <asm/lowcore.h>
- #include <asm/stacktrace.h>
-
-+#ifndef CONFIG_PREEMPT_RT
- static inline void do_softirq_own_stack(void)
- {
- call_on_stack(0, S390_lowcore.async_stack, void, __do_softirq);
- }
--
-+#endif
- #endif /* __ASM_S390_SOFTIRQ_STACK_H */
---- a/arch/sh/kernel/irq.c
-+++ b/arch/sh/kernel/irq.c
-@@ -149,6 +149,7 @@ void irq_ctx_exit(int cpu)
- hardirq_ctx[cpu] = NULL;
- }
-
-+#ifndef CONFIG_PREEMPT_RT
- void do_softirq_own_stack(void)
- {
- struct thread_info *curctx;
-@@ -176,6 +177,7 @@ void do_softirq_own_stack(void)
- "r5", "r6", "r7", "r8", "r9", "r15", "t", "pr"
- );
- }
-+#endif
- #else
- static inline void handle_one_irq(unsigned int irq)
- {
---- a/arch/sparc/kernel/irq_64.c
-+++ b/arch/sparc/kernel/irq_64.c
-@@ -855,6 +855,7 @@ void __irq_entry handler_irq(int pil, st
- set_irq_regs(old_regs);
- }
-
-+#ifndef CONFIG_PREEMPT_RT
- void do_softirq_own_stack(void)
- {
- void *orig_sp, *sp = softirq_stack[smp_processor_id()];
-@@ -869,6 +870,7 @@ void do_softirq_own_stack(void)
- __asm__ __volatile__("mov %0, %%sp"
- : : "r" (orig_sp));
- }
-+#endif
-
- #ifdef CONFIG_HOTPLUG_CPU
- void fixup_irqs(void)
---- a/include/asm-generic/softirq_stack.h
-+++ b/include/asm-generic/softirq_stack.h
-@@ -2,7 +2,7 @@
- #ifndef __ASM_GENERIC_SOFTIRQ_STACK_H
- #define __ASM_GENERIC_SOFTIRQ_STACK_H
-
--#ifdef CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK
-+#if defined(CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK) && !defined(CONFIG_PREEMPT_RT)
- void do_softirq_own_stack(void);
- #else
- static inline void do_softirq_own_stack(void)