From: Prasad J Pandit <p...@fedoraproject.org> While checking r/w access in 'memory_access_is_direct' routine a glitch in the expression leads to segmentation fault while performing dma read operation.
Reported-by: Donghai Zdh <donghai....@alibaba-inc.com> Signed-off-by: Prasad J Pandit <p...@fedoraproject.org> --- exec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exec.c b/exec.c index 0a4a0c5..98d97d3 100644 --- a/exec.c +++ b/exec.c @@ -375,7 +375,7 @@ address_space_translate_internal(AddressSpaceDispatch *d, hwaddr addr, hwaddr *x static inline bool memory_access_is_direct(MemoryRegion *mr, bool is_write) { if (memory_region_is_ram(mr)) { - return !(is_write && mr->readonly); + return (is_write && !mr->readonly); } if (memory_region_is_romd(mr)) { return !is_write; -- 2.5.0