qemu/target/s390x
Janis Schoetterl-Glausch 54354861d2 target/s390x: kvm: Honor storage keys during emulation
Storage key controlled protection is currently not honored when
emulating instructions.
If available, enable key protection for the MEM_OP ioctl, thereby
enabling it for the s390_cpu_virt_mem_* functions, when using kvm.
As a result, the emulation of the following instructions honors storage
keys:

* CLP
  	The Synch I/O CLP command would need special handling in order
  	to support storage keys, but is currently not supported.
* CHSC
	Performing commands asynchronously would require special
	handling, but commands are currently always synchronous.
* STSI
* TSCH
	Must (and does) not change channel if terminated due to
	protection.
* MSCH
	Suppressed on protection, works because fetching instruction.
* SSCH
	Suppressed on protection, works because fetching instruction.
* STSCH
* STCRW
	Suppressed on protection, this works because no partial store is
	possible, because the operand cannot span multiple pages.
* PCISTB
* MPCIFC
* STPCIFC

Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Message-Id: <20220506153956.2217601-3-scgl@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-06-03 08:03:28 +02:00
..
kvm target/s390x: kvm: Honor storage keys during emulation 2022-06-03 08:03:28 +02:00
tcg s390: Typo fix FLOATING_POINT_SUPPPORT_ENH 2022-06-02 18:31:51 +02:00
arch_dump.c target/s390x: rename internal.h to s390x-internal.h 2021-07-07 14:01:56 +02:00
cpu_features_def.h meson: rename .inc.h files to .h.inc 2020-08-21 06:18:35 -04:00
cpu_features_def.h.inc s390: Typo fix FLOATING_POINT_SUPPPORT_ENH 2022-06-02 18:31:51 +02:00
cpu_features.c s390x: pv: Fence additional unavailable SCLP facilities for PV guests 2020-12-21 18:11:32 +01:00
cpu_features.h s390x: pv: Fix diag318 PV fencing 2020-10-22 15:47:27 +02:00
cpu_models_sysemu.c Don't include sysemu/tcg.h if it is not necessary 2022-04-20 12:12:47 -07:00
cpu_models_user.c target/s390x: split sysemu part of cpu models 2021-07-07 14:01:59 +02:00
cpu_models.c s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG 2022-05-04 08:47:19 +02:00
cpu_models.h meson: convert target/s390x/gen-features.h 2020-08-21 06:30:17 -04:00
cpu-dump.c target/s390x: Fix shifting 32-bit values for more than 31 bits 2022-01-17 08:36:33 +01:00
cpu-param.h Normalize header guard symbol definition 2022-05-11 16:50:26 +02:00
cpu-qom.h target: Introduce and use OBJECT_DECLARE_CPU_TYPE() macro 2022-03-06 22:23:09 +01:00
cpu-sysemu.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
cpu.c disas: Remove old libopcode s390 disassembler 2022-05-04 08:47:19 +02:00
cpu.h Move CPU softfloat unions to cpu-float.h 2022-04-06 14:31:43 +02:00
diag.c target/s390x: move kvm files into kvm/ 2021-07-07 14:01:59 +02:00
gdbstub.c target/s390x: rename internal.h to s390x-internal.h 2021-07-07 14:01:56 +02:00
gen-features.c s390: Typo fix FLOATING_POINT_SUPPPORT_ENH 2022-06-02 18:31:51 +02:00
helper.c Don't include sysemu/tcg.h if it is not necessary 2022-04-20 12:12:47 -07:00
helper.h target/s390x: vxeh2: Update for changes to vector shifts 2022-05-04 08:47:19 +02:00
interrupt.c target/s390x: move kvm files into kvm/ 2021-07-07 14:01:59 +02:00
ioinst.c s390x/ioinst: Fix wrong MSCH alignment check on little endian 2021-09-06 16:23:22 +02:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
machine.c target/s390x: move kvm files into kvm/ 2021-07-07 14:01:59 +02:00
meson.build target/s390x: split sysemu part of cpu models 2021-07-07 14:01:59 +02:00
mmu_helper.c hw/s390x/s390-skeys: lazy storage key enablement under TCG 2021-09-06 16:24:05 +02:00
s390x-internal.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
sigp.c s390x: sigp: Reorder the SIGP STOP code 2022-01-18 15:00:57 +01:00
trace-events target/s390x: move kvm files into kvm/ 2021-07-07 14:01:59 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00