summaryrefslogtreecommitdiffstats
path: root/kernel/softirq.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2013-09-24 16:39:41 +0200
committerFrederic Weisbecker <fweisbec@gmail.com>2013-10-01 12:53:25 +0200
commitbe6e1016440860fc4ec098b2d0aed3d0397b5d6e (patch)
tree6de1ac73642c9c54e7207c5b4fc3e751d20a1341 /kernel/softirq.c
parent7d65f4a6553203da6a22097821d151fbbe7e4956 (diff)
downloadlinux-stable-be6e1016440860fc4ec098b2d0aed3d0397b5d6e.tar.gz
linux-stable-be6e1016440860fc4ec098b2d0aed3d0397b5d6e.tar.bz2
linux-stable-be6e1016440860fc4ec098b2d0aed3d0397b5d6e.zip
irq: Optimize call to softirq on hardirq exit
Before processing softirqs on hardirq exit, we already do the check for pending softirqs while hardirqs are guaranteed to be disabled. So we can take a shortcut and safely jump to the arch specific implementation directly. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@au1.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul Mackerras <paulus@au1.ibm.com> Cc: James Hogan <james.hogan@imgtec.com> Cc: James E.J. Bottomley <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: David S. Miller <davem@davemloft.net> Cc: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r--kernel/softirq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 26ee72725d29..17c5cd2e3dae 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -335,7 +335,7 @@ static inline void invoke_softirq(void)
* in its own stack to prevent from any overrun on top
* of a potentially deep task stack.
*/
- do_softirq();
+ do_softirq_own_stack();
} else {
wakeup_softirqd();
}