From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50926) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVHgM-0002PD-QX for qemu-devel@nongnu.org; Wed, 02 Apr 2014 05:42:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WVHgG-0000Fa-Nj for qemu-devel@nongnu.org; Wed, 02 Apr 2014 05:42:06 -0400 From: Alexander Graf Date: Wed, 2 Apr 2014 11:41:58 +0200 Message-Id: <1396431718-14908-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 2.0] PPC: openpic_kvm: Filter memory events properly List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: scottwood@freescale.com, Peter Maydell , prasadjoshi.linux@gmail.com, qemu-ppc@nongnu.org, afaerber@suse.de 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 --- hw/intc/openpic_kvm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c index afa604d..6635407 100644 --- a/hw/intc/openpic_kvm.c +++ b/hw/intc/openpic_kvm.c @@ -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)®_base; -- 1.8.1.4