From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55198) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uhd6f-0005Dw-06 for qemu-devel@nongnu.org; Wed, 29 May 2013 05:55:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uhd6X-0002X5-VB for qemu-devel@nongnu.org; Wed, 29 May 2013 05:55:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59874) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uhd6X-0002Wi-N7 for qemu-devel@nongnu.org; Wed, 29 May 2013 05:55:37 -0400 Date: Wed, 29 May 2013 12:55:53 +0300 From: "Michael S. Tsirkin" Message-ID: <20130529095553.GN4472@redhat.com> References: <1368059472-25071-1-git-send-email-david@gibson.dropbear.id.au> <1368059472-25071-7-git-send-email-david@gibson.dropbear.id.au> <20130523112230.GE17480@redhat.com> <20130523121627.GC26259@boomeroo.fritz.box> <20130529094341.GG5489@boomeroo.fritz.box> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130529094341.GG5489@boomeroo.fritz.box> Subject: Re: [Qemu-devel] [PATCH 6/8] pci: Simpler implementation of primary PCI bus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, David Gibson On Wed, May 29, 2013 at 07:43:41PM +1000, David Gibson wrote: > On Thu, May 23, 2013 at 10:16:27PM +1000, David Gibson wrote: > > On Thu, May 23, 2013 at 02:22:30PM +0300, Michael S. Tsirkin wrote: > > > On Thu, May 09, 2013 at 10:31:10AM +1000, David Gibson wrote: > > > > Currently pci_get_primary_bus() searches the list of root buses for one > > > > with domain 0. But since host buses are always registered with domain 0, > > > > this just amounts to finding the only PCI host bus. > > > > > > > > This simplifies the implementation by defining the primary PCI bus to > > > > be the first one registered, using a global variable to track it. > > > > > > > > Signed-off-by: David Gibson > > > > > > Or better: can we just fail if there is more than > > > one root? > > > > That might work, I'll look into doing that. > > So, the difficulty with this is that then any machine with multiple > PCI bridges could not use pci_nic_init(), since it calls > pci_get_bus_devfn() which calls pci_find_primary_bus() which would > always fail. And using pci_nic_init() is more or less mandatory in > the machine_init function to support old-style nic configuration. > > Suggestions? You mean multiple PCI roots? Well, there are no legacy machines with multiple roots to support, are there? So why do we need to support legacy flags for these new configurations? > -- > David Gibson | I'll have my music baroque, and my code > david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ > | _way_ _around_! > http://www.ozlabs.org/~dgibson