Ralf Baechle wrote: > On Mon, Feb 12, 2007 at 11:48:26PM +0900, Atsushi Nemoto wrote: > >> It looks 2.6.19 or 2.6.20 does not work on DECStations. > > Applied. Thanks, > Hi Ralf, Since you applied Atsushi's patch, can you consider the following one ? thanks Franck -- >8 -- From: Franck Bui-Huu <fbuihuu@xxxxxxxxx> This patch makes these routines a lot more readable whatever the value of CONFIG_PREEMPT. When CONFIG_PREEMPT is not set, it also moves one branch instruction from ret_from_irq() to ret_from_exception(). Therefore we favour the return from irq case which should be more common than the other one. Acked-by: Atsushi Nemoto <anemo@xxxxxxxxxxxxx> Signed-off-by: Franck Bui-Huu <fbuihuu@xxxxxxxxx> --- arch/mips/kernel/entry.S | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S index f10b6a1..c7429b2 100644 --- a/arch/mips/kernel/entry.S +++ b/arch/mips/kernel/entry.S @@ -21,24 +21,21 @@ #endif #ifndef CONFIG_PREEMPT - .macro preempt_stop - local_irq_disable - .endm #define resume_kernel restore_all +#else +#define __ret_from_irq ret_from_exception #endif .text .align 5 -FEXPORT(ret_from_irq) - LONG_S s0, TI_REGS($28) -#ifdef CONFIG_PREEMPT +#ifndef CONFIG_PREEMPT FEXPORT(ret_from_exception) -#else + local_irq_disable # preempt stop b _ret_from_irq -FEXPORT(ret_from_exception) - preempt_stop #endif -FEXPORT(_ret_from_irq) +FEXPORT(ret_from_irq) + LONG_S s0, TI_REGS($28) +FEXPORT(__ret_from_irq) LONG_L t0, PT_STATUS(sp) # returning to kernel mode? andi t0, t0, KU_USER beqz t0, resume_kernel -- 1.4.4.3.ge6d4