diff options
author | Sam Bobroff <sbobroff@linux.ibm.com> | 2019-08-16 06:48:10 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-08-22 15:12:46 +0200 |
commit | c44e4ccadaca5884ac82b6dfffbd693bec3b583e (patch) | |
tree | 023b12b8ed92d5a06098b3fe172a7fb21626ce57 /arch/powerpc/kernel/eeh_cache.c | |
parent | powerpc/eeh: EEH for pSeries hot plug (diff) | |
download | linux-c44e4ccadaca5884ac82b6dfffbd693bec3b583e.tar.xz linux-c44e4ccadaca5884ac82b6dfffbd693bec3b583e.zip |
powerpc/eeh: Refactor around eeh_probe_devices()
Now that EEH support for all devices (on PowerNV and pSeries) is
provided by the pcibios bus add device hooks, eeh_probe_devices() and
eeh_addr_cache_build() are redundant and can be removed.
Move the EEH enabled message into it's own function so that it can be
called from multiple places.
Note that previously on pSeries, useless EEH sysfs files were created
for some devices that did not have EEH support and this change
prevents them from being created.
Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/33b0a6339d5ac88693de092d6fba984f2a5add66.1565930772.git.sbobroff@linux.ibm.com
Diffstat (limited to 'arch/powerpc/kernel/eeh_cache.c')
-rw-r--r-- | arch/powerpc/kernel/eeh_cache.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/arch/powerpc/kernel/eeh_cache.c b/arch/powerpc/kernel/eeh_cache.c index 75f0d66dee4b..1e47cd04a1bd 100644 --- a/arch/powerpc/kernel/eeh_cache.c +++ b/arch/powerpc/kernel/eeh_cache.c @@ -268,38 +268,6 @@ void eeh_addr_cache_init(void) spin_lock_init(&pci_io_addr_cache_root.piar_lock); } -/** - * eeh_addr_cache_build - Build a cache of I/O addresses - * - * Build a cache of pci i/o addresses. This cache will be used to - * find the pci device that corresponds to a given address. - * This routine scans all pci busses to build the cache. - * Must be run late in boot process, after the pci controllers - * have been scanned for devices (after all device resources are known). - */ -void eeh_addr_cache_build(void) -{ - struct pci_dn *pdn; - struct eeh_dev *edev; - struct pci_dev *dev = NULL; - - for_each_pci_dev(dev) { - pdn = pci_get_pdn_by_devfn(dev->bus, dev->devfn); - if (!pdn) - continue; - - edev = pdn_to_eeh_dev(pdn); - if (!edev) - continue; - - dev->dev.archdata.edev = edev; - edev->pdev = dev; - - eeh_addr_cache_insert_dev(dev); - eeh_sysfs_add_device(dev); - } -} - static int eeh_addr_cache_show(struct seq_file *s, void *v) { struct pci_io_addr_range *piar; |