linux/arch/s390
Gerald Schaefer 41ac42f137 s390/mm: do not trigger write fault when vma does not allow VM_WRITE
For non-protection pXd_none() page faults in do_dat_exception(), we
call do_exception() with access == (VM_READ | VM_WRITE | VM_EXEC).
In do_exception(), vma->vm_flags is checked against that before
calling handle_mm_fault().

Since commit 92f842eac7 ("[S390] store indication fault optimization"),
we call handle_mm_fault() with FAULT_FLAG_WRITE, when recognizing that
it was a write access. However, the vma flags check is still only
checking against (VM_READ | VM_WRITE | VM_EXEC), and therefore also
calling handle_mm_fault() with FAULT_FLAG_WRITE in cases where the vma
does not allow VM_WRITE.

Fix this by changing access check in do_exception() to VM_WRITE only,
when recognizing write access.

Link: https://lkml.kernel.org/r/20220811103435.188481-3-david@redhat.com
Fixes: 92f842eac7 ("[S390] store indication fault optimization")
Cc: <stable@vger.kernel.org>
Reported-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2022-08-25 15:12:32 +02:00
..
appldata
boot s390 updates for 5.20 merge window 2022-08-06 17:05:21 -07:00
configs random: remove CONFIG_ARCH_RANDOM 2022-07-18 15:03:37 +02:00
crypto s390 updates for 5.20 merge window 2022-08-06 17:05:21 -07:00
hypfs s390/hypfs: avoid error message under KVM 2022-08-15 17:19:51 +02:00
include Bitmap patches for v6.0-rc1 2022-08-07 17:52:35 -07:00
kernel s390: fix double free of GS and RI CBs on fork() failure 2022-08-25 15:12:32 +02:00
kvm KVM: s390: resetting the Topology-Change-Report 2022-07-20 10:57:37 +02:00
lib s390/nospec: build expoline.o for modules_prepare target 2022-07-13 15:21:55 +02:00
mm s390/mm: do not trigger write fault when vma does not allow VM_WRITE 2022-08-25 15:12:32 +02:00
net s390/bpf: Fix typo in comment 2022-05-23 11:25:53 -07:00
pci pci-v5.20-changes 2022-08-04 19:30:35 -07:00
purgatory s390/purgatory: remove duplicated build rule of kexec-purgatory.o 2022-06-30 14:18:16 +02:00
tools KVM: s390: Add facility 197 to the allow list 2022-07-13 15:25:25 +02:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig Random number generator updates for Linux 6.0-rc1. 2022-08-02 17:31:35 -07:00
Kconfig.debug s390/Kconfig.debug: fix indentation 2022-06-01 12:03:15 +02:00
Makefile s390/nospec: remove unneeded header includes 2022-07-13 15:21:55 +02:00