Niklas Schnelle <schnelle@xxxxxxxxxxxxx> writes: > On powerpc, pci_dev_is_added() is called as part of SR-IOV fixups > that are done under pcibios_add_device() which in turn is only called in > pci_device_add() whih is called when a PCI device is scanned. Thanks for cleaning this up for us. > Now pci_dev_assign_added() is called in pci_bus_add_device() which is > only called after scanning the device. Thus pci_dev_is_added() is always > false and can be dropped. My only query is whether we can pin down when that changed. Oliver said: The use of pci_dev_is_added() in arch/powerpc was because in the past pci_bus_add_device() could be called before pci_device_add(). That was fixed a while ago so It should be safe to remove those calls now. I trawled back through the history a bit but I can't remember/find which commit changed that, Oliver can you remember? cheers > diff --git a/arch/powerpc/platforms/powernv/pci-sriov.c b/arch/powerpc/platforms/powernv/pci-sriov.c > index 28aac933a439..deddbb233fde 100644 > --- a/arch/powerpc/platforms/powernv/pci-sriov.c > +++ b/arch/powerpc/platforms/powernv/pci-sriov.c > @@ -9,9 +9,6 @@ > > #include "pci.h" > > -/* for pci_dev_is_added() */ > -#include "../../../../drivers/pci/pci.h" > - > /* > * The majority of the complexity in supporting SR-IOV on PowerNV comes from > * the need to put the MMIO space for each VF into a separate PE. Internally > @@ -228,9 +225,6 @@ static void pnv_pci_ioda_fixup_iov_resources(struct pci_dev *pdev) > > void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev) > { > - if (WARN_ON(pci_dev_is_added(pdev))) > - return; > - > if (pdev->is_virtfn) { > struct pnv_ioda_pe *pe = pnv_ioda_get_pe(pdev); > > diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c > index f79126f16258..2188054470c1 100644 > --- a/arch/powerpc/platforms/pseries/setup.c > +++ b/arch/powerpc/platforms/pseries/setup.c > @@ -74,7 +74,6 @@ > #include <asm/hvconsole.h> > > #include "pseries.h" > -#include "../../../../drivers/pci/pci.h" > > DEFINE_STATIC_KEY_FALSE(shared_processor); > EXPORT_SYMBOL(shared_processor); > @@ -750,7 +749,7 @@ static void pseries_pci_fixup_iov_resources(struct pci_dev *pdev) > const int *indexes; > struct device_node *dn = pci_device_to_OF_node(pdev); > > - if (!pdev->is_physfn || pci_dev_is_added(pdev)) > + if (!pdev->is_physfn) > return; > /*Firmware must support open sriov otherwise dont configure*/ > indexes = of_get_property(dn, "ibm,open-sriov-vf-bar-info", NULL); > -- > 2.25.1