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

Commit 8b3262c0 authored by Greg Ungerer's avatar Greg Ungerer
Browse files

m68knommu: fix syscall tracing stuck process



The return path from an exception was checking too many bits in the
thread_info->flags, and getting stuck calling do_signal(). There was
no work to do, we should only be checking the low 8 bits (as per comments
and definitions in arch/m68k/include/asm/thread_info.h).

This fixes the stuck process problem when using strace.

Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
parent 62aa2b53
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ Luser_return:
	movel	%sp,%d1			/* get thread_info pointer */
	andl	#-THREAD_SIZE,%d1	/* at base of kernel stack */
	movel	%d1,%a0
	movel	%a0@(TINFO_FLAGS),%d1	/* get thread_info->flags */
	moveb	%a0@(TINFO_FLAGS+3),%d1	/* thread_info->flags (low 8 bits) */
	jne	Lwork_to_do		/* still work to do */

Lreturn:
@@ -148,8 +148,6 @@ Lwork_to_do:
	btst	#TIF_NEED_RESCHED,%d1
	jne	reschedule

	/* GERG: do we need something here for TRACEing?? */

Lsignal_return:
	subql	#4,%sp			/* dummy return address */
	SAVE_SWITCH_STACK