| From c10f19d9f405a5325689ba12d372080d62b84170 Mon Sep 17 00:00:00 2001 |
| From: Wu Zhangjin <wuzhangjin@gmail.com> |
| Date: Wed, 10 Mar 2010 01:38:27 +0800 |
| Subject: [PATCH] RT: MIPS: Convert the schedule to __schedule |
| |
| commit c10f19d9f405a5325689ba12d372080d62b84170 in tip. |
| |
| There is a new __schedule() defined in the Preempt-rt patch, which |
| should be called between local_irq_disble and local_irq_enable. |
| |
| Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> |
| |
| diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S |
| index ffa3310..2b43b66 100644 |
| --- a/arch/mips/kernel/entry.S |
| +++ b/arch/mips/kernel/entry.S |
| @@ -145,11 +145,8 @@ work_pending: |
| andi t0, a2, _TIF_NEED_RESCHED # a2 is preloaded with TI_FLAGS |
| beqz t0, work_notifysig |
| work_resched: |
| - jal schedule |
| + jal __schedule |
| |
| - local_irq_disable # make sure need_resched and |
| - # signals dont change between |
| - # sampling and return |
| LONG_L a2, TI_FLAGS($28) |
| andi t0, a2, _TIF_WORK_MASK # is there any work to be done |
| # other than syscall tracing? |
| diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c |
| index 87316fc..3b2a0c0 100644 |
| --- a/arch/mips/kernel/process.c |
| +++ b/arch/mips/kernel/process.c |
| @@ -78,9 +78,11 @@ void __noreturn cpu_idle(void) |
| play_dead(); |
| #endif |
| 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 |
| |