mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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: f8fc82b471
("s390: move sys_call_table and last_break from thread_info to thread_struct")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
5c5afd0201
commit
61aaef51cc
1 changed files with 2 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue