]> git.proxmox.com Git - mirror_qemu.git/commitdiff
PPC: openpic_kvm: Filter memory events properly
authorAlexander Graf <agraf@suse.de>
Wed, 2 Apr 2014 09:41:58 +0000 (11:41 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 3 Apr 2014 11:43:17 +0000 (12:43 +0100)
Commit 6f1834a2b exposed a bug in openpic_kvm where we don't filter
for memory events that only happen to the region we want to know
events about.

Add proper filtering, fixing the e500plat target with KVM.

Signed-off-by: Alexander Graf <agraf@suse.de>
Message-id: 1396431718-14908-1-git-send-email-agraf@suse.de
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/openpic_kvm.c

index afa604d59bcbe9c9825a42dad62ff2a9aeec7135..6635407b8beb9ef364ff412acea344eed23830f6 100644 (file)
@@ -118,6 +118,11 @@ static void kvm_openpic_region_add(MemoryListener *listener,
         abort();
     }
 
+    /* Ignore events on regions that are not us */
+    if (section->mr != &opp->mem) {
+        return;
+    }
+
     reg_base = section->offset_within_address_space;
 
     attr.group = KVM_DEV_MPIC_GRP_MISC;
@@ -140,6 +145,11 @@ static void kvm_openpic_region_del(MemoryListener *listener,
     uint64_t reg_base = 0;
     int ret;
 
+    /* Ignore events on regions that are not us */
+    if (section->mr != &opp->mem) {
+        return;
+    }
+
     attr.group = KVM_DEV_MPIC_GRP_MISC;
     attr.attr = KVM_DEV_MPIC_BASE_ADDR;
     attr.addr = (uint64_t)(unsigned long)&reg_base;