]> xenbits.xensource.com Git - qemu-upstream-4.4-testing.git/commitdiff
exec: fix a glitch in checking dma r/w access
authorPrasad J Pandit <pjp@fedoraproject.org>
Mon, 25 Jan 2016 14:29:50 +0000 (19:59 +0530)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Fri, 5 Feb 2016 14:53:53 +0000 (14:53 +0000)
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.zdh@alibaba-inc.com>
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
exec.c

diff --git a/exec.c b/exec.c
index f3797b77921367cef8fd8ef2d22bf748cfd7383d..e64f69b59183471115c3cea48ed859f8de12a270 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -1903,7 +1903,7 @@ static void invalidate_and_set_dirty(hwaddr addr,
 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;