From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34652) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UPWkN-0003Re-0F for qemu-devel@nongnu.org; Tue, 09 Apr 2013 07:29:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UPWkK-0002Ml-SO for qemu-devel@nongnu.org; Tue, 09 Apr 2013 07:29:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:19117) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UPWkK-0002MZ-K6 for qemu-devel@nongnu.org; Tue, 09 Apr 2013 07:29:52 -0400 Message-ID: <5163FB9E.9010903@redhat.com> Date: Tue, 09 Apr 2013 13:29:34 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1365172636-28628-1-git-send-email-imammedo@redhat.com> <1365172636-28628-19-git-send-email-imammedo@redhat.com> In-Reply-To: <1365172636-28628-19-git-send-email-imammedo@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 18/22] target-i386: move APIC to ICC bus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: aliguori@us.ibm.com, ehabkost@redhat.com, claudio.fontana@huawei.com, qemu-devel@nongnu.org, aderumier@odiso.com, lcapitulino@redhat.com, jfrei@linux.vnet.ibm.com, yang.z.zhang@intel.com, afaerber@suse.de, lig.fnst@cn.fujitsu.com, rth@twiddle.net Il 05/04/2013 16:37, Igor Mammedov ha scritto: > @@ -282,12 +284,14 @@ static int apic_load_old(QEMUFile *f, void *opaque, int version_id) > return 0; > } > > -static int apic_init_common(SysBusDevice *dev) > +static int apic_init_common(ICCDevice *dev) > { > APICCommonState *s = APIC_COMMON(dev); > + DeviceState *d = DEVICE(dev); > APICCommonClass *info; > static DeviceState *vapic; > static int apic_no; > + static bool mmio_registered; > > if (apic_no >= MAX_APICS) { > return -1; > @@ -296,8 +300,11 @@ static int apic_init_common(SysBusDevice *dev) > > info = APIC_COMMON_GET_CLASS(s); > info->init(s); > - > - sysbus_init_mmio(dev, &s->io_memory); > + if (!mmio_registered) { > + MemoryRegion *as = ICC_BUS(d->parent_bus)->apic_address_space; > + memory_region_add_subregion(as, 0, &s->io_memory); > + mmio_registered = true; > + } Ok for now. When we get IOMMU regions, we could use them to dispatch on the current CPU's APIC. Paolo