summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2005-07-28 21:15:49 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-28 21:46:02 -0700
commited6b676ca8b50e0b538e61c283d52fd04f007abf (patch)
tree753ea613ce334c41f835f6aac21074b137d24713 /kernel
parent3829ee6b1be03d5aa3005fe7d19f30088b539836 (diff)
downloadlinux-ed6b676ca8b50e0b538e61c283d52fd04f007abf.tar.gz
linux-ed6b676ca8b50e0b538e61c283d52fd04f007abf.tar.bz2
linux-ed6b676ca8b50e0b538e61c283d52fd04f007abf.zip
[PATCH] x86_64: Switch to the interrupt stack when running a softirq in local_bh_enable()
This avoids some potential stack overflows with very deep softirq callchains. i386 does this too. TOADD CFI annotation Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/softirq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index b4ab6af1dea8..31007d6542cc 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -86,7 +86,7 @@ restart:
/* Reset the pending bitmask before enabling irqs */
local_softirq_pending() = 0;
- local_irq_enable();
+ //local_irq_enable();
h = softirq_vec;
@@ -99,7 +99,7 @@ restart:
pending >>= 1;
} while (pending);
- local_irq_disable();
+ //local_irq_disable();
pending = local_softirq_pending();
if (pending && --max_restart)