[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 19/31] target/s390x: Return exception from mmu_translate_real
From: |
Peter Maydell |
Subject: |
Re: [PULL 19/31] target/s390x: Return exception from mmu_translate_real |
Date: |
Thu, 17 Oct 2019 12:57:04 +0100 |
On Thu, 10 Oct 2019 at 12:35, David Hildenbrand <address@hidden> wrote:
>
> From: Richard Henderson <address@hidden>
>
> Do not raise the exception directly within mmu_translate_real,
> but pass it back so that caller may do so.
>
> Reviewed-by: David Hildenbrand <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
> Message-Id: <address@hidden>
> Signed-off-by: David Hildenbrand <address@hidden>
Hi; Coverity complains about dead code in this patch:
> --- a/target/s390x/mmu_helper.c
> +++ b/target/s390x/mmu_helper.c
> @@ -554,14 +554,11 @@ void s390_cpu_virt_mem_handle_exc(S390CPU *cpu,
> uintptr_t ra)
> * @param rw 0 = read, 1 = write, 2 = code fetch
> * @param addr the translated address is stored to this pointer
> * @param flags the PAGE_READ/WRITE/EXEC flags are stored to this pointer
> - * @return 0 if the translation was successful, < 0 if a fault occurred
> + * @return 0 = success, != 0, the exception to raise
> */
> int mmu_translate_real(CPUS390XState *env, target_ulong raddr, int rw,
> - target_ulong *addr, int *flags)
> + target_ulong *addr, int *flags, uint64_t *tec)
> {
> - /* Code accesses have an undefined ilc, let's use 2 bytes. */
> - uint64_t tec = (raddr & TARGET_PAGE_MASK) |
> - (rw == MMU_DATA_STORE ? FS_WRITE : FS_READ);
> const bool lowprot_enabled = env->cregs[0] & CR0_LOWPROT;
>
> *flags = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
> @@ -570,9 +567,10 @@ int mmu_translate_real(CPUS390XState *env, target_ulong
> raddr, int rw,
> *flags |= PAGE_WRITE_INV;
> if (is_low_address(raddr) && rw == MMU_DATA_STORE) {
> /* LAP sets bit 56 */
> - tec |= 0x80;
> - trigger_access_exception(env, PGM_PROTECTION, ILEN_AUTO, tec);
> - return -EACCES;
> + *tec = (raddr & TARGET_PAGE_MASK)
> + | (rw == MMU_DATA_STORE ? FS_WRITE : FS_READ)
We're inside a condition which includes 'rw == MMU_DATA_STORE',
so checking it again here is unnecessary, and the 'false'
part of this ?: conditional is dead-code.
> + | 0x80;
> + return PGM_PROTECTION;
> }
> }
thanks
-- PMM
- [PULL 11/31] s390x/cpumodel: Prepare for changes of QEMU model, (continued)
- [PULL 11/31] s390x/cpumodel: Prepare for changes of QEMU model, David Hildenbrand, 2019/10/10
- [PULL 09/31] s390x/mmu: Implement ESOP-2 and access-exception-fetch/store-indication facility, David Hildenbrand, 2019/10/10
- [PULL 12/31] s390x/cpumodel: Add new TCG features to QEMU cpu model, David Hildenbrand, 2019/10/10
- [PULL 13/31] target/s390x: Add ilen to unwind data, David Hildenbrand, 2019/10/10
- [PULL 14/31] target/s390x: Remove ilen parameter from tcg_s390_program_interrupt, David Hildenbrand, 2019/10/10
- [PULL 15/31] target/s390x: Remove ilen parameter from s390_program_interrupt, David Hildenbrand, 2019/10/10
- [PULL 16/31] target/s390x: Use tcg_s390_program_interrupt in TCG helpers, David Hildenbrand, 2019/10/10
- [PULL 17/31] target/s390x: Push trigger_pgm_exception lower in s390_cpu_tlb_fill, David Hildenbrand, 2019/10/10
- [PULL 18/31] target/s390x: Handle tec in s390_cpu_tlb_fill, David Hildenbrand, 2019/10/10
- [PULL 19/31] target/s390x: Return exception from mmu_translate_real, David Hildenbrand, 2019/10/10
- Re: [PULL 19/31] target/s390x: Return exception from mmu_translate_real,
Peter Maydell <=
- [PULL 20/31] target/s390x: Remove exc argument to mmu_translate_asce, David Hildenbrand, 2019/10/10
- [PULL 21/31] target/s390x: Return exception from mmu_translate, David Hildenbrand, 2019/10/10
- [PULL 22/31] target/s390x: Return exception from translate_pages, David Hildenbrand, 2019/10/10
- [PULL 23/31] target/s390x: Remove fail variable from s390_cpu_tlb_fill, David Hildenbrand, 2019/10/10
- [PULL 24/31] target/s390x: Simplify helper_lra, David Hildenbrand, 2019/10/10
- [PULL 25/31] target/s390x: Rely on unwinding in s390_cpu_tlb_fill, David Hildenbrand, 2019/10/10
- [PULL 26/31] target/s390x: Rely on unwinding in s390_cpu_virt_mem_rw, David Hildenbrand, 2019/10/10
- [PULL 27/31] target/s390x: Remove ILEN_AUTO, David Hildenbrand, 2019/10/10