qemu/target/sparc
Peter Maydell 3c818dfcc2 target/sparc: Correctly handle bus errors in page table walks
Currently we use the ldl_phys() function to read page table entries.
With the unassigned_access hook in place, if these hit an unassigned
area of memory then the hook will cause us to wrongly generate
an exception with a fault address matching the address of the
page table entry.

Change to using address_space_ldl() so we can detect and correctly
handle bus errors and give them their correct behaviour of
causing a translation error with a suitable fault status register.

Note that this won't actually take effect until we switch the
over to using the do_translation_failed hook.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 20190801183012.17564-5-peter.maydell@linaro.org
2019-09-17 12:01:00 +01:00
..
asi.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
cc_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
cpu.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
cpu.h target/sparc: sun4u Invert Endian TTE bit 2019-09-03 08:30:39 -07:00
fop_helper.c target/sparc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
helper.h target-sparc: implement UA2005 GL register 2017-01-18 22:03:44 +01:00
int32_helper.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
int64_helper.c sparc: embed sparc_def_t into CPUSPARCState 2017-09-01 11:54:24 -03:00
ldst_helper.c target/sparc: Check for transaction failures in MXCC stream ASI accesses 2019-09-17 12:01:00 +01:00
machine.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
Makefile.objs Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mmu_helper.c target/sparc: Correctly handle bus errors in page table walks 2019-09-17 12:01:00 +01:00
monitor.c hmp: Move hmp.h to include/monitor/ 2019-07-02 07:19:45 +02:00
TODO Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
translate.c tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
vis_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
win_helper.c sparc: embed sparc_def_t into CPUSPARCState 2017-09-01 11:54:24 -03:00