diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-10-02 07:56:46 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-10-02 07:57:37 +0200 |
commit | b8d490c3de797c88cfcc3364c6e04d8900121cf9 (patch) | |
tree | ac62b90323e561bca35a407211242dab8987099b /include | |
parent | 8a60d42d26d31df8121b251c2b5c56eb24e729f1 (diff) | |
parent | 62d26c8200a8382e1c67419ca3aff78d37898cc5 (diff) | |
download | lwn-b8d490c3de797c88cfcc3364c6e04d8900121cf9.tar.gz lwn-b8d490c3de797c88cfcc3364c6e04d8900121cf9.zip |
Merge branch 'irq/core-v6' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into irq/core
Pull hardirq and softirq nesting updates from Frederic Weisbecker,
which fix nesting related stack overruns such as:
http://lkml.kernel.org/r/1378330796.4321.50.camel%40pasglop
Beyond being a fix, this series also optimizes and reorganizes arch
hardirq/softirq stack processing to be faster and more robust.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/interrupt.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 5e865b554940..c9e831dc80bc 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -19,6 +19,7 @@ #include <linux/atomic.h> #include <asm/ptrace.h> +#include <asm/irq.h> /* * These correspond to the IORESOURCE_IRQ_* defines in @@ -374,6 +375,16 @@ struct softirq_action asmlinkage void do_softirq(void); asmlinkage void __do_softirq(void); + +#ifdef __ARCH_HAS_DO_SOFTIRQ +void do_softirq_own_stack(void); +#else +static inline void do_softirq_own_stack(void) +{ + __do_softirq(); +} +#endif + extern void open_softirq(int nr, void (*action)(struct softirq_action *)); extern void softirq_init(void); extern void __raise_softirq_irqoff(unsigned int nr); |