Various places ignore the MemTxResult indicator of transaction failed. Some cases might be justified (DMA?) while other are probably bugs. To avoid ignoring transaction errors, suggestion is to mark functions returning MemTxResult with warn_unused_result attribute.
Philippe Mathieu-Daudé (2): exec/memory: Let address_space_read/write_cached() propagate MemTxResult exec/memory: Emit warning when MemTxResult is ignored include/exec/memory.h | 50 +++++++++++++++++++++++++++---------------- exec.c | 16 +++++++------- 2 files changed, 40 insertions(+), 26 deletions(-) -- 2.21.3