summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2018-04-09 13:30:18 +0200
committerCornelia Huck <cohuck@redhat.com>2018-04-09 13:58:01 +0200
commit61a17fea6df45f0219537536b7af92a42df6ade6 (patch)
tree349ad8b8c51d5421bc479ab2f73b2ef4d6e1d98e
parentbe4d026f645eb31078e08d431c93a898b895024e (diff)
downloadfocaccia-qemu-61a17fea6df45f0219537536b7af92a42df6ade6.tar.gz
focaccia-qemu-61a17fea6df45f0219537536b7af92a42df6ade6.zip
s390x/mmu: don't overwrite pending exception in mmu translate
If we already triggered another exception, don't overwrite it with a
protection exception.

Only applies to old KVM instances without the virtual memory access
IOCTL in KVM.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180409113019.14568-2-david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
-rw-r--r--target/s390x/mmu_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c
index 1deeb6e6e4..a25deef5dd 100644
--- a/target/s390x/mmu_helper.c
+++ b/target/s390x/mmu_helper.c
@@ -325,7 +325,7 @@ static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr,
 
     r = mmu_translate_region(env, vaddr, asc, asce, level, raddr, flags, rw,
                              exc);
-    if (rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) {
+    if (!r && rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) {
         trigger_prot_fault(env, vaddr, asc, rw, exc);
         return -1;
     }