mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
s390/entry: rework entering DAT-on mode on CPU restart
Instead of enforcing PSW_MASK_DAT bit on previously stored in lowcore restart_psw.mask use the PSW_KERNEL_BITS mask (which contains PSW_MASK_DAT) directly. As result, the PSW mask stored in lowcore is only used to enter the CPU restart routine, while PSW_KERNEL_BITS is used to enter the kernel code - similarily to commit 64ea2977add2 ("s390/mm: start kernel with DAT enabled"). Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
@@ -598,8 +598,9 @@ SYM_CODE_START(restart_int_handler)
|
|||||||
TSTMSK __LC_RESTART_FLAGS,RESTART_FLAG_CTLREGS,4
|
TSTMSK __LC_RESTART_FLAGS,RESTART_FLAG_CTLREGS,4
|
||||||
jz 0f
|
jz 0f
|
||||||
lctlg %c0,%c15,__LC_CREGS_SAVE_AREA
|
lctlg %c0,%c15,__LC_CREGS_SAVE_AREA
|
||||||
0: larl %r15,stosm_tmp
|
0: larl %r15,daton_psw
|
||||||
stosm 0(%r15),0x04 # turn dat on, keep irqs off
|
lpswe 0(%r15) # turn dat on, keep irqs off
|
||||||
|
.Ldaton:
|
||||||
lg %r15,__LC_RESTART_STACK
|
lg %r15,__LC_RESTART_STACK
|
||||||
xc STACK_FRAME_OVERHEAD(__PT_SIZE,%r15),STACK_FRAME_OVERHEAD(%r15)
|
xc STACK_FRAME_OVERHEAD(__PT_SIZE,%r15),STACK_FRAME_OVERHEAD(%r15)
|
||||||
stmg %r0,%r14,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
stmg %r0,%r14,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
||||||
@@ -646,7 +647,11 @@ SYM_CODE_END(stack_overflow)
|
|||||||
.balign 4
|
.balign 4
|
||||||
SYM_DATA_LOCAL(stop_lock, .long 0)
|
SYM_DATA_LOCAL(stop_lock, .long 0)
|
||||||
SYM_DATA_LOCAL(this_cpu, .short 0)
|
SYM_DATA_LOCAL(this_cpu, .short 0)
|
||||||
SYM_DATA_LOCAL(stosm_tmp, .byte 0)
|
.balign 8
|
||||||
|
SYM_DATA_START_LOCAL(daton_psw)
|
||||||
|
.quad PSW_KERNEL_BITS
|
||||||
|
.quad .Ldaton
|
||||||
|
SYM_DATA_END(daton_psw)
|
||||||
|
|
||||||
.section .rodata, "a"
|
.section .rodata, "a"
|
||||||
#define SYSCALL(esame,emu) .quad __s390x_ ## esame
|
#define SYSCALL(esame,emu) .quad __s390x_ ## esame
|
||||||
|
Reference in New Issue
Block a user