On Wed, May 29, 2013 at 12:55:53PM +0300, Michael S. Tsirkin wrote: > 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 <da...@gibson.dropbear.id.au> > > > > > > > > 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?
Because people expect them. Plus on spapr we already support the legacy nic options; it would be very strange for them to suddenly break when we add a second host bridge. -- 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
signature.asc
Description: Digital signature