Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7da8a581 authored by Franck Bui-Huu's avatar Franck Bui-Huu Committed by Ralf Baechle
Browse files

[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: default avatarFranck Bui-Huu <fbuihuu@gmail.com>
Acked-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 6f3aa38e
Loading
Loading
Loading
Loading
+8 −11
Original line number Original line Diff line number Diff line
@@ -21,24 +21,21 @@
#endif
#endif


#ifndef CONFIG_PREEMPT
#ifndef CONFIG_PREEMPT
	.macro	preempt_stop
	local_irq_disable
	.endm
#define resume_kernel	restore_all
#define resume_kernel	restore_all
#else
#define __ret_from_irq	ret_from_exception
#endif
#endif


	.text
	.text
	.align	5
	.align	5
FEXPORT(ret_from_irq)
#ifndef CONFIG_PREEMPT
	LONG_S	s0, TI_REGS($28)
#ifdef CONFIG_PREEMPT
FEXPORT(ret_from_exception)
#else
	b	_ret_from_irq
FEXPORT(ret_from_exception)
FEXPORT(ret_from_exception)
	preempt_stop
	local_irq_disable			# preempt stop
	b	__ret_from_irq
#endif
#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?
	LONG_L	t0, PT_STATUS(sp)		# returning to kernel mode?
	andi	t0, t0, KU_USER
	andi	t0, t0, KU_USER
	beqz	t0, resume_kernel
	beqz	t0, resume_kernel