Re: [PATCH v2 07/10] PCI: call add_bus method also for root bus

From: Bjorn Helgaas
Date: Thu Feb 21 2019 - 18:37:27 EST


Hi Thomas,

On Tue, Feb 19, 2019 at 04:57:21PM +0100, Thomas Bogendoerfer wrote:
> pci-xtalk controller code uses the add_bus method to set node of
> the bus device, which then is used for pcibus_to_node() implementation.
>
> Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@xxxxxxx>
> ---
> drivers/pci/probe.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 257b9f6f2ebb..456448d5f46d 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -837,6 +837,12 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
>
> pcibios_add_bus(bus);
>
> + if (bus->ops->add_bus) {
> + err = bus->ops->add_bus(bus);
> + if (WARN_ON(err < 0))
> + dev_err(&bus->dev, "failed to add bus: %d\n", err);
> + }

Is there something special about pci-xtalk that prevents it from
setting the node the way other platforms do, without using the
add_bus() method?

I haven't researched the details of how other platforms do it, but if
it would be possible for pci-xtalk to do it the same way, that would
be ideal.

> /* Create legacy_io and legacy_mem files for this bus */
> pci_create_legacy_files(bus);
>
> --
> 2.13.7
>