summaryrefslogtreecommitdiff
path: root/kernel/softirq.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-01-31 12:01:27 (GMT)
committerScott Wood <scottwood@freescale.com>2014-04-10 00:19:22 (GMT)
commit07ffc758f648ade41f1ca85bcb7708d9c91bce53 (patch)
treed2e00381b9d6feddb351347ae7a758d4520604f2 /kernel/softirq.c
parent0c0cdb175d31104430c3d944c634edd63ea0e673 (diff)
downloadlinux-fsl-qoriq-07ffc758f648ade41f1ca85bcb7708d9c91bce53.tar.xz
genirq: Allow disabling of softirq processing in irq thread context
The processing of softirqs in irq thread context is a performance gain for the non-rt workloads of a system, but it's counterproductive for interrupts which are explicitely related to the realtime workload. Allow such interrupts to prevent softirq processing in their thread context. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable-rt@vger.kernel.org
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r--kernel/softirq.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 79d370b..37482da 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -460,6 +460,13 @@ void local_bh_enable_ip(unsigned long ip)
}
EXPORT_SYMBOL(local_bh_enable_ip);
+void _local_bh_enable(void)
+{
+ current->softirq_nestcnt--;
+ migrate_enable();
+}
+EXPORT_SYMBOL(_local_bh_enable);
+
/* For tracing */
int notrace __in_softirq(void)
{