Skip to content

Commit 0d41bd0

Browse files
Vasily Gorbikgregkh
authored andcommitted
s390/startup: avoid save_area_sync overflow
[ Upstream commit 2835c2e ] Currently we overflow save_area_sync and write over save_area_async. Although this is not a real problem make startup_pgm_check_handler consistent with late pgm check handler and store [%r0,%r7] directly into gpregs_save_area. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent eb8ce8c commit 0d41bd0

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

arch/s390/boot/head.S

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -360,22 +360,23 @@ ENTRY(startup_kdump)
360360
# the save area and does disabled wait with a faulty address.
361361
#
362362
ENTRY(startup_pgm_check_handler)
363-
stmg %r0,%r15,__LC_SAVE_AREA_SYNC
364-
la %r1,4095
365-
stctg %c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r1)
366-
mvc __LC_GPREGS_SAVE_AREA-4095(128,%r1),__LC_SAVE_AREA_SYNC
367-
mvc __LC_PSW_SAVE_AREA-4095(16,%r1),__LC_PGM_OLD_PSW
363+
stmg %r8,%r15,__LC_SAVE_AREA_SYNC
364+
la %r8,4095
365+
stctg %c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r8)
366+
stmg %r0,%r7,__LC_GPREGS_SAVE_AREA-4095(%r8)
367+
mvc __LC_GPREGS_SAVE_AREA-4095+64(64,%r8),__LC_SAVE_AREA_SYNC
368+
mvc __LC_PSW_SAVE_AREA-4095(16,%r8),__LC_PGM_OLD_PSW
368369
mvc __LC_RETURN_PSW(16),__LC_PGM_OLD_PSW
369370
ni __LC_RETURN_PSW,0xfc # remove IO and EX bits
370371
ni __LC_RETURN_PSW+1,0xfb # remove MCHK bit
371372
oi __LC_RETURN_PSW+1,0x2 # set wait state bit
372-
larl %r2,.Lold_psw_disabled_wait
373-
stg %r2,__LC_PGM_NEW_PSW+8
374-
l %r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r2)
373+
larl %r9,.Lold_psw_disabled_wait
374+
stg %r9,__LC_PGM_NEW_PSW+8
375+
l %r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r9)
375376
brasl %r14,print_pgm_check_info
376377
.Lold_psw_disabled_wait:
377-
la %r1,4095
378-
lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
378+
la %r8,4095
379+
lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r8)
379380
lpswe __LC_RETURN_PSW # disabled wait
380381
.Ldump_info_stack:
381382
.long 0x5000 + PAGE_SIZE - STACK_FRAME_OVERHEAD

0 commit comments

Comments
 (0)