aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2021-02-10 00:40:54 +0100
committerThomas Gleixner <tglx@linutronix.de>2021-02-10 23:34:17 +0100
commit72f40a2823d6e16229ab58b898c6f22044e5222f (patch)
tree5f1967e5f6621f4317c57aff4b58aca16b8ba670
parentsoftirq: Move do_softirq_own_stack() to generic asm header (diff)
downloadlinux-dev-72f40a2823d6e16229ab58b898c6f22044e5222f.tar.xz
linux-dev-72f40a2823d6e16229ab58b898c6f22044e5222f.zip
x86/softirq/64: Inline do_softirq_own_stack()
There is no reason to have this as a seperate function for a single caller. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20210210002513.382806685@linutronix.de
-rw-r--r--arch/x86/include/asm/irq_stack.h3
-rw-r--r--arch/x86/include/asm/softirq_stack.h11
-rw-r--r--arch/x86/kernel/irq_64.c5
3 files changed, 12 insertions, 7 deletions
diff --git a/arch/x86/include/asm/irq_stack.h b/arch/x86/include/asm/irq_stack.h
index 1b82f9230709..9b2a0ff76c73 100644
--- a/arch/x86/include/asm/irq_stack.h
+++ b/arch/x86/include/asm/irq_stack.h
@@ -194,7 +194,7 @@
* interrupts are pending to be processed. The interrupt stack cannot be in
* use here.
*/
-#define run_softirq_on_irqstack() \
+#define do_softirq_own_stack() \
{ \
__this_cpu_write(hardirq_stack_inuse, true); \
call_on_irqstack(__do_softirq, ASM_CALL_SOFTIRQ); \
@@ -202,7 +202,6 @@
}
#else /* CONFIG_X86_64 */
-
/* System vector handlers always run on the stack they interrupted. */
#define run_sysvec_on_irqstack_cond(func, regs) \
{ \
diff --git a/arch/x86/include/asm/softirq_stack.h b/arch/x86/include/asm/softirq_stack.h
new file mode 100644
index 000000000000..889d53d6a0e1
--- /dev/null
+++ b/arch/x86/include/asm/softirq_stack.h
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_X86_SOFTIRQ_STACK_H
+#define _ASM_X86_SOFTIRQ_STACK_H
+
+#ifdef CONFIG_X86_64
+# include <asm/irq_stack.h>
+#else
+# include <asm-generic/softirq_stack.h>
+#endif
+
+#endif
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index f335c3910834..1c0fb96b9e39 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -74,8 +74,3 @@ int irq_init_percpu_irqstack(unsigned int cpu)
return 0;
return map_irq_stack(cpu);
}
-
-void do_softirq_own_stack(void)
-{
- run_softirq_on_irqstack();
-}