From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qnnu4-0008Av-I1 for qemu-devel@nongnu.org; Mon, 01 Aug 2011 04:31:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qnnu2-000317-Ub for qemu-devel@nongnu.org; Mon, 01 Aug 2011 04:31:12 -0400 Date: Mon, 1 Aug 2011 17:31:06 +0900 From: Isaku Yamahata Message-ID: <20110801083106.GH31494@valinux.co.jp> References: <1312181462-29889-1-git-send-email-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1312181462-29889-1-git-send-email-david@gibson.dropbear.id.au> Subject: Re: [Qemu-devel] [PATCH] Correctly assign PCI domain numbers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: qemu-trivial@nongnu.org, qemu-devel@nongnu.org, mst@redhat.com [Added mst to Cc.] In order to use multi PCI domain, several areas need to be addressed in addition to this patch. For example, bios, acpi dsdt. Do you have any plan for addressing those area? What's your motivation for multi pci domain? NOTE: I'm not opposing to this patch. Just curious for your motivation/plan. On Mon, Aug 01, 2011 at 04:51:02PM +1000, David Gibson wrote: > qemu already almost supports PCI domains; that is, several entirely > independent PCI host bridges on the same machine. However, a bug in > pci_bus_new_inplace() means that every host bridge gets assigned domain > number zero and so can't be properly distinguished. This patch fixes the > bug, giving each new host bridge a new domain number. > > Signed-off-by: David Gibson > --- > hw/pci.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/hw/pci.c b/hw/pci.c > index 36db58b..2b4aecb 100644 > --- a/hw/pci.c > +++ b/hw/pci.c > @@ -262,6 +262,8 @@ int pci_find_domain(const PCIBus *bus) > return -1; > } > > +static int pci_next_domain; /* = 0 */ > + > void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent, > const char *name, > MemoryRegion *address_space, > @@ -274,7 +276,8 @@ void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent, > > /* host bridge */ > QLIST_INIT(&bus->child); > - pci_host_bus_register(0, bus); /* for now only pci domain 0 is supported */ > + > + pci_host_bus_register(pci_next_domain++, bus); > > vmstate_register(NULL, -1, &vmstate_pcibus, bus); > } > -- > 1.7.5.4 > > -- yamahata