Searched hist:"04 e3aabde397e7abc78ba1ce6cbd144d5fbb1722" (Results 1 – 1 of 1) sorted by relevance
/openbmc/qemu/accel/tcg/ |
H A D | cputlb.c | diff 04e3aabde397e7abc78ba1ce6cbd144d5fbb1722 Mon Sep 04 09:21:55 CDT 2017 Peter Maydell <peter.maydell@linaro.org> cputlb: Support generating CPU exceptions on memory transaction failures
Call the new cpu_transaction_failed() hook at the places where CPU generated code interacts with the memory system: io_readx() io_writex() get_page_addr_code()
Any access from C code (eg via cpu_physical_memory_rw(), address_space_rw(), ld/st_*_phys()) will *not* trigger CPU exceptions via cpu_transaction_failed(). Handling for transactions failures for this kind of call should be done by using a function which returns a MemTxResult and treating the failure case appropriately in the calling code.
In an ideal world we would not generate CPU exceptions for instruction fetch failures in get_page_addr_code() but instead wait until the code translation process tried a load and it failed; however that change would require too great a restructuring and redesign to attempt at this point.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
|