summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2013-10-02 07:56:46 +0200
committerIngo Molnar <mingo@kernel.org>2013-10-02 07:57:37 +0200
commitb8d490c3de797c88cfcc3364c6e04d8900121cf9 (patch)
treeac62b90323e561bca35a407211242dab8987099b /include
parent8a60d42d26d31df8121b251c2b5c56eb24e729f1 (diff)
parent62d26c8200a8382e1c67419ca3aff78d37898cc5 (diff)
downloadlwn-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.h11
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);