diff options
author | David Hildenbrand <david@redhat.com> | 2018-01-12 13:54:52 +0100 |
---|---|---|
committer | Cornelia Huck <cohuck@redhat.com> | 2018-01-22 11:04:52 +0100 |
commit | b5e85329026115b5a679849f45e7c19c2714e4fd (patch) | |
tree | 4e1b8e2008a670e87e2b4c65b50c9c4ab301788a /target/s390x/cpu.h | |
parent | 46fa893355e0bd88f3c59b886f0d75cbd5f0bbbe (diff) |
s390x/tcg: fixup TEST PROTECTION
CC == 2 can only happen due to a protection exception, not if memory is
not available (PGM_ADDRESSING). So all PGM_ADDRESSING exceptions have to
be forwarded to the guest.
Since the initial definition of TEST PROTECTION, we now read globals
(e.g. PSW mask), so we have to correctly mark the instruction
(otherwise, e.g. booting fedora 27 fails).
Also, the architecture explicitly specifies which exceptions are
forwarded to the guest, this makes the code a little nicer.
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180112125452.8569-1-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'target/s390x/cpu.h')
-rw-r--r-- | target/s390x/cpu.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 1a8b6b9ae9..915bccbc75 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -759,6 +759,8 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uint8_t ar, void *hostbuf, s390_cpu_virt_mem_rw(cpu, laddr, ar, dest, len, false) #define s390_cpu_virt_mem_write(cpu, laddr, ar, dest, len) \ s390_cpu_virt_mem_rw(cpu, laddr, ar, dest, len, true) +#define s390_cpu_virt_mem_check_read(cpu, laddr, ar, len) \ + s390_cpu_virt_mem_rw(cpu, laddr, ar, NULL, len, false) #define s390_cpu_virt_mem_check_write(cpu, laddr, ar, len) \ s390_cpu_virt_mem_rw(cpu, laddr, ar, NULL, len, true) void s390_cpu_virt_mem_handle_exc(S390CPU *cpu, uintptr_t ra); |