[PATCH 3/3] powerpc/pci: Remove pcibios_setup_bus_devices()
Alexey Kardashevskiy
aik at ozlabs.ru
Tue Oct 1 15:40:10 AEST 2019
On 30/09/2019 12:08, Oliver O'Halloran wrote:
> With the previous patch applied pcibios_setup_device() will always be run
> when pcibios_bus_add_device() is called. There are several code paths where
> pcibios_setup_bus_device() is still called (the PowerPC specific PCI
> hotplug support is one) so with just the previous patch applied the setup
> can be run multiple times on a device, once before the device is added
> to the bus and once after.
>
> There's no need to run the setup in the early case any more so just
> remove it entirely.
>
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
Tested-by: Alexey Kardashevskiy <aik at ozlabs.ru>
Reviewed-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---
> arch/powerpc/include/asm/pci.h | 1 -
> arch/powerpc/kernel/pci-common.c | 25 -------------------------
> arch/powerpc/kernel/pci-hotplug.c | 1 -
> arch/powerpc/kernel/pci_of_scan.c | 1 -
> 4 files changed, 28 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h
> index 327567b..63ed7e3 100644
> --- a/arch/powerpc/include/asm/pci.h
> +++ b/arch/powerpc/include/asm/pci.h
> @@ -113,7 +113,6 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file,
> pgprot_t prot);
>
> extern resource_size_t pcibios_io_space_offset(struct pci_controller *hose);
> -extern void pcibios_setup_bus_devices(struct pci_bus *bus);
> extern void pcibios_setup_bus_self(struct pci_bus *bus);
> extern void pcibios_setup_phb_io_space(struct pci_controller *hose);
> extern void pcibios_scan_phb(struct pci_controller *hose);
> diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
> index b89925ed..f8a59d7 100644
> --- a/arch/powerpc/kernel/pci-common.c
> +++ b/arch/powerpc/kernel/pci-common.c
> @@ -1000,24 +1000,6 @@ int pcibios_add_device(struct pci_dev *dev)
> return 0;
> }
>
> -void pcibios_setup_bus_devices(struct pci_bus *bus)
> -{
> - struct pci_dev *dev;
> -
> - pr_debug("PCI: Fixup bus devices %d (%s)\n",
> - bus->number, bus->self ? pci_name(bus->self) : "PHB");
> -
> - list_for_each_entry(dev, &bus->devices, bus_list) {
> - /* Cardbus can call us to add new devices to a bus, so ignore
> - * those who are already fully discovered
> - */
> - if (pci_dev_is_added(dev))
> - continue;
> -
> - pcibios_setup_device(dev);
> - }
> -}
> -
> void pcibios_set_master(struct pci_dev *dev)
> {
> /* No special bus mastering setup handling */
> @@ -1036,13 +1018,6 @@ void pcibios_fixup_bus(struct pci_bus *bus)
> }
> EXPORT_SYMBOL(pcibios_fixup_bus);
>
> -void pci_fixup_cardbus(struct pci_bus *bus)
> -{
> - /* Now fixup devices on that bus */
> - pcibios_setup_bus_devices(bus);
> -}
> -
> -
> static int skip_isa_ioresource_align(struct pci_dev *dev)
> {
> if (pci_has_flag(PCI_CAN_SKIP_ISA_ALIGN) &&
> diff --git a/arch/powerpc/kernel/pci-hotplug.c b/arch/powerpc/kernel/pci-hotplug.c
> index fc62c4b..d6a67f8 100644
> --- a/arch/powerpc/kernel/pci-hotplug.c
> +++ b/arch/powerpc/kernel/pci-hotplug.c
> @@ -134,7 +134,6 @@ void pci_hp_add_devices(struct pci_bus *bus)
> */
> slotno = PCI_SLOT(PCI_DN(dn->child)->devfn);
> pci_scan_slot(bus, PCI_DEVFN(slotno, 0));
> - pcibios_setup_bus_devices(bus);
> max = bus->busn_res.start;
> /*
> * Scan bridges that are already configured. We don't touch
> diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
> index f91d7e9..c3024f1 100644
> --- a/arch/powerpc/kernel/pci_of_scan.c
> +++ b/arch/powerpc/kernel/pci_of_scan.c
> @@ -414,7 +414,6 @@ static void __of_scan_bus(struct device_node *node, struct pci_bus *bus,
> */
> if (!rescan_existing)
> pcibios_setup_bus_self(bus);
> - pcibios_setup_bus_devices(bus);
>
> /* Now scan child busses */
> for_each_pci_bridge(dev, bus)
>
--
Alexey
More information about the Linuxppc-dev
mailing list