Commit cd1a41ce authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig



To prepare for inlining do_softirq_own_stack() replace
__ARCH_HAS_DO_SOFTIRQ with a Kconfig switch and select it in the affected
architectures.

This allows in the next step to move the function prototype and the inline
stub into a seperate asm-generic header file which is required to avoid
include recursion.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210210002513.181713427@linutronix.de
parent 624db9ea
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -759,6 +759,12 @@ config HAVE_IRQ_EXIT_ON_IRQ_STACK
	  This spares a stack switch and improves cache usage on softirq
	  processing.

config HAVE_SOFTIRQ_ON_OWN_STACK
	bool
	help
	  Architecture provides a function to run __do_softirq() on a
	  seperate stack.

config PGTABLE_LEVELS
	int
	default 2
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ config PARISC
	select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
	select HAVE_KPROBES_ON_FTRACE
	select HAVE_DYNAMIC_FTRACE_WITH_REGS
	select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
	select SET_FS

	help
+0 −4
Original line number Diff line number Diff line
@@ -12,10 +12,6 @@
#include <linux/threads.h>
#include <linux/irq.h>

#ifdef CONFIG_IRQSTACKS
#define __ARCH_HAS_DO_SOFTIRQ
#endif

typedef struct {
	unsigned int __softirq_pending;
	unsigned int kernel_stack_usage;
+1 −0
Original line number Diff line number Diff line
@@ -237,6 +237,7 @@ config PPC
	select MMU_GATHER_PAGE_SIZE
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_RELIABLE_STACKTRACE		if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
	select HAVE_SOFTIRQ_ON_OWN_STACK
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_VIRT_CPU_ACCOUNTING
	select HAVE_IRQ_TIME_ACCOUNTING
+0 −2
Original line number Diff line number Diff line
@@ -37,8 +37,6 @@ extern int distribute_irqs;

struct pt_regs;

#define __ARCH_HAS_DO_SOFTIRQ

#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
/*
 * Per-cpu stacks for handling critical, debug and machine check
Loading