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

Commit 02f884ed authored by Al Viro's avatar Al Viro Committed by Ralf Baechle
Browse files

MIPS: Merge the identical "return from syscall" per-ABI code



No need to keep 4 copies of that stuff; merged and taken to
entry.S, unused public symbols there killed off.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 0b894bd8
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ FEXPORT(syscall_exit)
	and	t0, a2, t0
	bnez	t0, syscall_exit_work

FEXPORT(restore_all)			# restore full frame
restore_all:				# restore full frame
#ifdef CONFIG_MIPS_MT_SMTC
#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
/* Re-arm any temporarily masked interrupts not explicitly "acked" */
@@ -117,7 +117,7 @@ FEXPORT(restore_all) # restore full frame
	RESTORE_TEMP
	RESTORE_AT
	RESTORE_STATIC
FEXPORT(restore_partial)		# restore partial frame
restore_partial:		# restore partial frame
#ifdef CONFIG_TRACE_IRQFLAGS
	SAVE_STATIC
	SAVE_AT
@@ -164,7 +164,13 @@ work_notifysig: # deal with pending signals and
	jal	do_notify_resume	# a2 already loaded
	j	resume_userspace

FEXPORT(syscall_exit_work_partial)
FEXPORT(syscall_exit_partial)
	local_irq_disable		# make sure need_resched doesn't
					# change between and return
	LONG_L	a2, TI_FLAGS($28)	# current->work
	li	t0, _TIF_ALLWORK_MASK
	and	t0, a2
	beqz	t0, restore_partial
	SAVE_STATIC
syscall_exit_work:
	LONG_L	t0, PT_STATUS(sp)		# returning to kernel mode?
+1 −12
Original line number Diff line number Diff line
@@ -69,18 +69,7 @@ stack_done:
1:	sw	v0, PT_R2(sp)		# result

o32_syscall_exit:
	local_irq_disable		# make sure need_resched and
					# signals dont change between
					# sampling and return
	lw	a2, TI_FLAGS($28)	# current->work
	li	t0, _TIF_ALLWORK_MASK
	and	t0, a2
	bnez	t0, o32_syscall_exit_work

	j	restore_partial

o32_syscall_exit_work:
	j	syscall_exit_work_partial
	j	syscall_exit_partial

/* ------------------------------------------------------------------------ */

+1 −12
Original line number Diff line number Diff line
@@ -72,18 +72,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
1:	sd	v0, PT_R2(sp)		# result

n64_syscall_exit:
	local_irq_disable		# make sure need_resched and
					# signals dont change between
					# sampling and return
	LONG_L	a2, TI_FLAGS($28)	# current->work
	li	t0, _TIF_ALLWORK_MASK
	and	t0, a2, t0
	bnez	t0, n64_syscall_exit_work

	j	restore_partial

n64_syscall_exit_work:
	j	syscall_exit_work_partial
	j	syscall_exit_partial

/* ------------------------------------------------------------------------ */

+1 −12
Original line number Diff line number Diff line
@@ -70,18 +70,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
	sd	t1, PT_R0(sp)		# save it for syscall restarting
1:	sd	v0, PT_R2(sp)		# result

	local_irq_disable		# make sure need_resched and
					# signals dont change between
					# sampling and return
	LONG_L  a2, TI_FLAGS($28)	# current->work
	li	t0, _TIF_ALLWORK_MASK
	and	t0, a2, t0
	bnez	t0, n32_syscall_exit_work

	j	restore_partial

n32_syscall_exit_work:
	j	syscall_exit_work_partial
	j	syscall_exit_partial

/* ------------------------------------------------------------------------ */

+1 −12
Original line number Diff line number Diff line
@@ -99,18 +99,7 @@ NESTED(handle_sys, PT_SIZE, sp)
1:	sd	v0, PT_R2(sp)		# result

o32_syscall_exit:
	local_irq_disable		# make need_resched and
					# signals dont change between
					# sampling and return
	LONG_L	a2, TI_FLAGS($28)
	li	t0, _TIF_ALLWORK_MASK
	and	t0, a2, t0
	bnez	t0, o32_syscall_exit_work

	j	restore_partial

o32_syscall_exit_work:
	j	syscall_exit_work_partial
	j	syscall_exit_partial

/* ------------------------------------------------------------------------ */