diff options
author | 2020-09-18 19:30:46 +1000 | |
---|---|---|
committer | 2020-10-06 23:22:25 +1100 | |
commit | 395ee2a2a15ba1c4c7c414db24dc3082ba8feab8 (patch) | |
tree | 3444bbb0e4933ed7155d90ab8dde8c2fbb686927 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | powerpc/eeh: Delete eeh_ops->init (diff) | |
download | linux-dev-395ee2a2a15ba1c4c7c414db24dc3082ba8feab8.tar.xz linux-dev-395ee2a2a15ba1c4c7c414db24dc3082ba8feab8.zip |
powerpc/eeh: Move EEH initialisation to an arch initcall
The initialisation of EEH mostly happens in a core_initcall_sync initcall,
followed by registering a bus notifier later on in an arch_initcall.
Anything involving initcall dependecies is mostly incomprehensible unless
you've spent a while staring at code so here's the full sequence:
ppc_md.setup_arch <-- pci_controllers are created here
...time passes...
core_initcall <-- pci_dns are created from DT nodes
core_initcall_sync <-- platforms call eeh_init()
postcore_initcall <-- PCI bus type is registered
postcore_initcall_sync
arch_initcall <-- EEH pci_bus notifier registered
subsys_initcall <-- PHBs are scanned here
There's no real requirement to do the EEH setup at the core_initcall_sync
level. It just needs to be done after pci_dn's are created and before we
start scanning PHBs. Simplify the flow a bit by moving the platform EEH
inititalisation to an arch_initcall so we can fold the bus notifier
registration into eeh_init().
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200918093050.37344-5-oohall@gmail.com
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions