1
0
Fork 0
alistair23-linux/arch/s390
Dominik Dingel 2faee8ff9d s390/mm: prevent and break zero page mappings in case of storage keys
As soon as storage keys are enabled we need to stop working on zero page
mappings to prevent inconsistencies between storage keys and pgste.

Otherwise following data corruption could happen:
1) guest enables storage key
2) guest sets storage key for not mapped page X
   -> change goes to PGSTE
3) guest reads from page X
   -> as X was not dirty before, the page will be zero page backed,
      storage key from PGSTE for X will go to storage key for zero page
4) guest sets storage key for not mapped page Y (same logic as above
5) guest reads from page Y
   -> as Y was not dirty before, the page will be zero page backed,
      storage key from PGSTE for Y will got to storage key for zero page
      overwriting storage key for X

While holding the mmap sem, we are safe against changes on entries we
already fixed, as every fault would need to take the mmap_sem (read).

Other vCPUs executing storage key instructions will get a one time interception
and be serialized also with mmap_sem.

Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2014-10-27 13:27:25 +01:00
..
appldata s390/appldata: add slab.h for kzalloc/kfree 2014-05-20 08:58:51 +02:00
boot s390/boot: fix boot of compressed kernel built with gcc 4.9 2014-05-27 10:26:04 +02:00
configs s390: update default configuration 2014-10-27 13:27:03 +01:00
crypto crypto: s390 - fix aes,des ctr mode concurrency finding. 2014-05-08 21:46:09 +08:00
hypfs hypfs: Add clarification for "weight_min" attribute 2014-03-17 15:53:03 +01:00
include s390/mm: prevent and break zero page mappings in case of storage keys 2014-10-27 13:27:25 +01:00
kernel s390/vdso: fix stack corruption 2014-10-27 13:27:02 +01:00
kvm s390/mm: recfactor global pgste updates 2014-10-27 13:27:23 +01:00
lib s390/uprobes: fix kprobes dependency 2014-10-17 14:45:51 +02:00
math-emu s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
mm s390/mm: prevent and break zero page mappings in case of storage keys 2014-10-27 13:27:25 +01:00
net net: filter: constify detection of pkt_type_offset 2014-09-13 17:07:21 -04:00
oprofile s390: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
pci s390/pci: introduce lazy IOTLB flushing for DMA unmap 2014-07-22 09:26:24 +02:00
Kbuild s390/pci: base support 2012-11-30 15:40:45 +01:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-10-14 03:47:00 +02:00
Kconfig.debug Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
Makefile s390: pass march flag to assembly files as well 2014-09-09 08:53:28 +02:00
defconfig s390: update default configuration 2014-10-27 13:27:03 +01:00