Commit 61aaef51 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: fix kernel oops for CONFIG_MARCH_Z900=y builds



The LAST_BREAK macro in entry.S uses a different instruction sequence
for CONFIG_MARCH_Z900 builds. The branch target offset to skip the
store of the last breaking event address needs to take the different
length of the code block into account.

Fixes: f8fc82b4 ("s390: move sys_call_table and last_break from thread_info to thread_struct")
Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 5c5afd02
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -123,10 +123,11 @@ _PIF_WORK = (_PIF_PER_TRAP)

	.macro	LAST_BREAK scratch
	srag	\scratch,%r10,23
	jz	.+10
#ifdef CONFIG_HAVE_MARCH_Z990_FEATURES
	jz	.+10
	stg	%r10,__TASK_thread+__THREAD_last_break(%r12)
#else
	jz	.+14
	lghi	\scratch,__TASK_thread
	stg	%r10,__THREAD_last_break(\scratch,%r12)
#endif