| From a4f8c114719ace1694e9e4e270f39cf82ea89b10 Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Fri, 3 Jul 2009 08:44:46 -0500 |
| Subject: [PATCH] ARM: scheduling fixups |
| |
| commit 181e8de44309e51bd36c89d24d3902ff8c794dff in tip. |
| |
| diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S |
| index 2c1db77..1d2a386 100644 |
| --- a/arch/arm/kernel/entry-common.S |
| +++ b/arch/arm/kernel/entry-common.S |
| @@ -52,7 +52,8 @@ work_pending: |
| b ret_slow_syscall @ Check work again |
| |
| work_resched: |
| - bl schedule |
| + bl __schedule |
| + |
| /* |
| * "slow" syscall return path. "why" tells us if this was a real syscall. |
| */ |
| diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c |
| index ba2adef..2bec4a9 100644 |
| --- a/arch/arm/kernel/process.c |
| +++ b/arch/arm/kernel/process.c |
| @@ -174,9 +174,11 @@ void cpu_idle(void) |
| } |
| leds_event(led_idle_end); |
| tick_nohz_restart_sched_tick(); |
| - preempt_enable_no_resched(); |
| - schedule(); |
| + local_irq_disable(); |
| + __preempt_enable_no_resched(); |
| + __schedule(); |
| preempt_disable(); |
| + local_irq_enable(); |
| } |
| } |
| |
| -- |
| 1.7.1.1 |
| |