]> git.baikalelectronics.ru Git - kernel.git/commit
s390: remove critical section cleanup from entry.S
authorSven Schnelle <svens@linux.ibm.com>
Thu, 20 Feb 2020 11:09:36 +0000 (12:09 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 28 May 2020 10:21:54 +0000 (12:21 +0200)
commit02ea41696b8d6a0898b66ee0f7f8a10aabd37882
treeaa4ee98940a9605c6bc5dd580794c9378f66a640
parentfee3ae2672727cf85f26e78a6b0cf26567336018
s390: remove critical section cleanup from entry.S

The current code is rather complex and caused a lot of subtle
and hard to debug bugs in the past. Simplify the code by calling
the system_call handler with interrupts disabled, save
machine state, and re-enable them later.

This requires significant changes to the machine check handling code
as well. When the machine check interrupt arrived while being in kernel
mode the new code will signal pending machine checks with a SIGP external
call. When userspace was interrupted, the handler will switch to the
kernel stack and directly execute s390_handle_mcck().

Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/nmi.h
arch/s390/include/asm/processor.h
arch/s390/kernel/entry.S
arch/s390/kernel/idle.c
arch/s390/kernel/nmi.c
arch/s390/kernel/setup.c
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/vsie.c
arch/s390/lib/delay.c