x86: Select CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
authorThomas Gleixner <tglx@linutronix.de>
Tue, 9 Feb 2021 23:40:51 +0000 (00:40 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 10 Feb 2021 22:34:16 +0000 (23:34 +0100)
commit624db9eabc74597f682c0651047a25b54f7260a1
treeff8d74fd46fa59d8424244026fdda562fcb21128
parent52d743f3b71265e14560a38f4c835d07b9c6fc4c
x86: Select CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK

Now that all invocations of irq_exit_rcu() happen on the irq stack, turn on
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK which causes the core code to invoke
__do_softirq() directly without going through do_softirq_own_stack().

That means do_softirq_own_stack() is only invoked from task context which
means it can't be on the irq stack. Remove the conditional from
run_softirq_on_irqstack_cond() and rename the function accordingly.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210210002513.068033456@linutronix.de
arch/x86/Kconfig
arch/x86/include/asm/irq_stack.h
arch/x86/kernel/irq_64.c