diff options
author | Franck Bui-Huu <vagabon.xyz@gmail.com> | 2007-02-13 14:50:18 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-13 22:40:51 +0000 |
commit | 7da8a581f5ec0ecac5f0afc9ec26ce13b780d48d (patch) | |
tree | a94025dbba3d4c1f5a10440872d08287cf991570 /arch/mips/kernel/entry.S | |
parent | 6f3aa38e191326a82d5dcae1f6cdc88b1d9a8d32 (diff) | |
download | kernel_goldelico_gta04-7da8a581f5ec0ecac5f0afc9ec26ce13b780d48d.zip kernel_goldelico_gta04-7da8a581f5ec0ecac5f0afc9ec26ce13b780d48d.tar.gz kernel_goldelico_gta04-7da8a581f5ec0ecac5f0afc9ec26ce13b780d48d.tar.bz2 |
[MIPS] Make entry.S a little more readable.
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.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r-- | arch/mips/kernel/entry.S | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S index f10b6a1..0b78fcb 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 -FEXPORT(ret_from_exception) -#else - b _ret_from_irq +#ifndef CONFIG_PREEMPT FEXPORT(ret_from_exception) - preempt_stop + local_irq_disable # preempt stop + b __ret_from_irq #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 |