linux/arch/s390
Martin Schwidefsky dcd2a9aaa0 s390/kvm: fix interrupt race with HANDLE_SIE_INTERCEPT
The HANDLE_SIE_INTERCEPT macro is used in the interrupt handlers
and the program check handler to undo a few changes done by sie64a.
Among them are guest vs host LPP, the gmap ASCE vs kernel ASCE and
the bit that indicates that SIE is currently running on the CPU.

There is a race of a voluntary SIE exit vs asynchronous interrupts.
If the CPU completed the SIE instruction and the TM instruction of
the LPP macro at the time it receives an interrupt, the interrupt
handler will run while the LPP, the ASCE and the SIE bit are still
set up for guest execution. This might result in wrong sampling data,
but it will not cause data corruption or lockups.

The critical section in sie64a needs to be enlarged to include all
instructions that undo the changes required for guest execution.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2015-07-22 09:58:03 +02:00
..
appldata s390: appldata: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
boot s390: remove "64" suffix from a couple of files 2015-03-25 11:49:34 +01:00
configs s390: new default configuration 2015-06-25 09:39:25 +02:00
crypto s390/crypto: add cpu feature modaliases for crypto modules 2015-07-22 09:58:02 +02:00
hypfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-07-04 19:36:06 -07:00
include s390/module: enable generic CPU feature modalias using s390 ELF hwcaps 2015-07-22 09:58:02 +02:00
kernel s390/kvm: fix interrupt race with HANDLE_SIE_INTERCEPT 2015-07-22 09:58:03 +02:00
kvm s390/kernel: lazy restore fpu registers 2015-07-22 09:58:01 +02:00
lib s390: remove "64" suffix from mem64.S and swsusp_asm64.S 2015-03-25 11:49:51 +01:00
mm revert "s390/mm: make hugepages_supported a boot time decision" 2015-07-17 16:39:52 -07:00
net s390/bpf: Fix backward jumps 2015-06-25 09:39:18 +02:00
oprofile s390/oprofile: fix compile error 2015-07-01 09:34:39 +02:00
pci s390/pci: improve handling of hotplug event 0x301 2015-06-18 15:45:54 +02:00
defconfig s390: new default configuration 2015-06-25 09:39:25 +02:00
Kbuild s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
Kconfig s390/module: enable generic CPU feature modalias using s390 ELF hwcaps 2015-07-22 09:58:02 +02:00
Kconfig.debug Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
Makefile s390: remove 31 bit support 2015-03-25 11:49:33 +01:00