summaryrefslogtreecommitdiff
path: root/kernel/softirq.c
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2009-01-22 15:34:38 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2009-01-22 15:34:38 +1100
commit204dfa691f47fc8fe4b32b1de36fc7e1e3337f72 (patch)
treeb9d237ba7e23873a93f2e0a1495b80be437e7308 /kernel/softirq.c
parente79780727e046e46c244cbd830b2b3264cbce25c (diff)
parent72accebb513bcb4ab345719135baf5d242464dac (diff)
Merge commit 'kmemcheck/auto-kmemcheck-next'
Conflicts: MAINTAINERS kernel/fork.c
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r--kernel/softirq.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 0365b4899a3d..7e93870cf3ea 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -361,6 +361,17 @@ void __tasklet_hi_schedule(struct tasklet_struct *t)
EXPORT_SYMBOL(__tasklet_hi_schedule);
+void __tasklet_hi_schedule_first(struct tasklet_struct *t)
+{
+ BUG_ON(!irqs_disabled());
+
+ t->next = __get_cpu_var(tasklet_hi_vec).head;
+ __get_cpu_var(tasklet_hi_vec).head = t;
+ __raise_softirq_irqoff(HI_SOFTIRQ);
+}
+
+EXPORT_SYMBOL(__tasklet_hi_schedule_first);
+
static void tasklet_action(struct softirq_action *a)
{
struct tasklet_struct *list;