On Wed, Mar 20, 2019 at 05:05:49PM +1100, Alexey Kardashevskiy wrote: > > > On 20/03/2019 13:58, Sam Bobroff wrote: > > 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. > > > > 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 <sbobr...@linux.ibm.com> > > --- > > arch/powerpc/include/asm/eeh.h | 6 ---- > > arch/powerpc/kernel/eeh.c | 13 -------- > > arch/powerpc/kernel/eeh_cache.c | 32 -------------------- > > arch/powerpc/platforms/powernv/eeh-powernv.c | 5 ++- > > arch/powerpc/platforms/pseries/pci.c | 3 +- > > 5 files changed, 3 insertions(+), 56 deletions(-) > > > > diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h > > index 791b9e6fcc45..f1eca1757cbc 100644 > > --- a/arch/powerpc/include/asm/eeh.h > > +++ b/arch/powerpc/include/asm/eeh.h > > @@ -290,13 +290,11 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe); > > struct eeh_dev *eeh_dev_init(struct pci_dn *pdn); > > void eeh_dev_phb_init_dynamic(struct pci_controller *phb); > > void eeh_show_enabled(void); > > -void eeh_probe_devices(void); > > int __init eeh_ops_register(struct eeh_ops *ops); > > int __exit eeh_ops_unregister(const char *name); > > int eeh_check_failure(const volatile void __iomem *token); > > int eeh_dev_check_failure(struct eeh_dev *edev); > > void eeh_addr_cache_init(void); > > -void eeh_addr_cache_build(void); > > void eeh_add_device_early(struct pci_dn *); > > void eeh_add_device_tree_early(struct pci_dn *); > > void eeh_add_device_late(struct pci_dev *); > > @@ -347,8 +345,6 @@ static inline bool eeh_phb_enabled(void) > > return false; > > } > > > > -static inline void eeh_probe_devices(void) { } > > - > > static inline void *eeh_dev_init(struct pci_dn *pdn, void *data) > > { > > return NULL; > > @@ -365,8 +361,6 @@ static inline int eeh_check_failure(const volatile void > > __iomem *token) > > > > static inline void eeh_addr_cache_init(void) { } > > > > -static inline void eeh_addr_cache_build(void) { } > > - > > static inline void eeh_add_device_early(struct pci_dn *pdn) { } > > > > static inline void eeh_add_device_tree_early(struct pci_dn *pdn) { } > > diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c > > index 217e14bb1fb6..cd2abbe41497 100644 > > --- a/arch/powerpc/kernel/eeh.c > > +++ b/arch/powerpc/kernel/eeh.c > > @@ -1166,19 +1166,6 @@ static struct notifier_block eeh_reboot_nb = { > > .notifier_call = eeh_reboot_notifier, > > }; > > > > -void eeh_probe_devices(void) > > -{ > > - struct pci_controller *hose, *tmp; > > - struct pci_dn *pdn; > > - > > - /* Enable EEH for all adapters */ > > - list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { > > - pdn = hose->pci_data; > > - traverse_pci_dn(pdn, eeh_ops->probe, NULL); > > - } > > - eeh_show_enabled(); > > -} > > - > > /** > > * eeh_init - EEH initialization > > * > > diff --git a/arch/powerpc/kernel/eeh_cache.c > > b/arch/powerpc/kernel/eeh_cache.c > > index f93dd5cf6a39..c40078d036af 100644 > > --- a/arch/powerpc/kernel/eeh_cache.c > > +++ b/arch/powerpc/kernel/eeh_cache.c > > @@ -278,38 +278,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; > > diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c > > b/arch/powerpc/platforms/powernv/eeh-powernv.c > > index 81b0923cc55f..6a08f4fab255 100644 > > --- a/arch/powerpc/platforms/powernv/eeh-powernv.c > > +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c > > @@ -240,9 +240,7 @@ int pnv_eeh_post_init(void) > > struct pnv_phb *phb; > > int ret = 0; > > > > - /* Probe devices & build address cache */ > > - eeh_probe_devices(); > > - eeh_addr_cache_build(); > > + eeh_show_enabled(); > > > > /* Register OPAL event notifier */ > > eeh_event_irq = opal_event_request(ilog2(OPAL_EVENT_PCI_ERROR)); > > @@ -360,6 +358,7 @@ static int pnv_eeh_find_ecap(struct pci_dn *pdn, int > > cap) > > return 0; > > } > > > > + > > Unrelated new line. Otherwise
Thanks, I'll fix it as part of merging in patch #5. > > Reviewed-by: Alexey Kardashevskiy <a...@ozlabs.ru> > > > > > > /** > > * pnv_eeh_probe - Do probe on PCI device > > * @pdn: PCI device node > > diff --git a/arch/powerpc/platforms/pseries/pci.c > > b/arch/powerpc/platforms/pseries/pci.c > > index 7be80882c08d..7c781b04fb15 100644 > > --- a/arch/powerpc/platforms/pseries/pci.c > > +++ b/arch/powerpc/platforms/pseries/pci.c > > @@ -242,8 +242,7 @@ void __init pSeries_final_fixup(void) > > > > pSeries_request_regions(); > > > > - eeh_probe_devices(); > > - eeh_addr_cache_build(); > > + eeh_show_enabled(); > > #ifdef CONFIG_EEH > > if (eeh_enabled()) > > eeh_add_flag(EEH_PHB_ENABLED); > > > > -- > Alexey >
signature.asc
Description: PGP signature