diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-07-28 14:31:31 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-07-28 14:31:31 +0200 |
commit | 54b371e002ee69a47e051e02702bf4eb1a360bab (patch) | |
tree | 123385fd61821a1bf918697b6ef92cb4359a6b1f /kernel/softirq.c | |
parent | b49f8d26493ee0c1f016115ad25912571c284411 (diff) | |
parent | f9d9cfe4fa444b93238d7c3cf07af2dd85b151e8 (diff) | |
download | lwn-54b371e002ee69a47e051e02702bf4eb1a360bab.tar.gz lwn-54b371e002ee69a47e051e02702bf4eb1a360bab.zip |
Merge branch 'rt/core' into rt/base
Conflicts:
kernel/spinlock.c
lib/kernel_lock.c
Manual fixup of kernel/rwlocks.c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index eb5e131a0485..5fc1b0eefe9b 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -67,7 +67,7 @@ char *softirq_to_name[NR_SOFTIRQS] = { * to the pending events, so lets the scheduler to balance * the softirq load for us. */ -void wakeup_softirqd(void) +static void wakeup_softirqd(void) { /* Interrupts are disabled: no need to stop preemption */ struct task_struct *tsk = __get_cpu_var(ksoftirqd); @@ -308,7 +308,7 @@ void irq_exit(void) if (idle_cpu(smp_processor_id()) && !in_interrupt() && !need_resched()) tick_nohz_stop_sched_tick(0); #endif - preempt_enable_no_resched(); + __preempt_enable_no_resched(); } /* @@ -704,8 +704,7 @@ static int ksoftirqd(void * __bind_cpu) while (!kthread_should_stop()) { preempt_disable(); if (!local_softirq_pending()) { - preempt_enable_no_resched(); - schedule(); + preempt_enable_and_schedule(); preempt_disable(); } @@ -718,7 +717,7 @@ static int ksoftirqd(void * __bind_cpu) if (cpu_is_offline((long)__bind_cpu)) goto wait_to_die; do_softirq(); - preempt_enable_no_resched(); + __preempt_enable_no_resched(); cond_resched(); preempt_disable(); rcu_qsctr_inc((long)__bind_cpu); |