diff options
author | David Hildenbrand <david@redhat.com> | 2018-04-09 13:30:18 +0200 |
---|---|---|
committer | Cornelia Huck <cohuck@redhat.com> | 2018-04-09 13:58:01 +0200 |
commit | 61a17fea6df45f0219537536b7af92a42df6ade6 (patch) | |
tree | 349ad8b8c51d5421bc479ab2f73b2ef4d6e1d98e /target/s390x | |
parent | be4d026f645eb31078e08d431c93a898b895024e (diff) |
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>
Diffstat (limited to 'target/s390x')
-rw-r--r-- | target/s390x/mmu_helper.c | 2 |
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; } |