From: Paul Mundt Date: Fri, 28 Sep 2007 06:48:06 +0000 (+0900) Subject: sh: Follow gUSA preempt changes in __switch_to(). X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=995bb781d42441ed48517bc7ea6414c3df3386ef;p=deliverable%2Flinux.git sh: Follow gUSA preempt changes in __switch_to(). Signed-off-by: Paul Mundt --- diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index 15ae322dbd74..cd8dae16e940 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -351,10 +352,9 @@ struct task_struct *__switch_to(struct task_struct *prev, #ifdef CONFIG_PREEMPT { - unsigned long flags; struct pt_regs *regs; - local_irq_save(flags); + preempt_disable(); regs = task_pt_regs(prev); if (user_mode(regs) && regs->regs[15] >= 0xc0000000) { int offset = (int)regs->regs[15]; @@ -365,7 +365,7 @@ struct task_struct *__switch_to(struct task_struct *prev, /* Go to rewind point */ regs->pc = regs->regs[0] + offset; } - local_irq_restore(flags); + preempt_enable_no_resched(); } #endif