linux/arch/powerpc/platforms/pseries
Gavin Shan 8cc7581cdb powerpc/pci: Delay populating pdn
The pdn (struct pci_dn) instances are allocated from memblock or
bootmem when creating PCI controller (hoses) in setup_arch(). PCI
hotplug, which will be supported by proceeding patches, releases
PCI device nodes and their corresponding pdn on unplugging event.
The memory chunks for pdn instances allocated from memblock or
bootmem are hard to reused after being released.

This delays creating pdn by pci_devs_phb_init() from setup_arch()
to core_initcall() so that they are allocated from slab. The memory
consumed by pdn can be released to system without problem during
PCI unplugging time. It indicates that pci_dn is unavailable in
setup_arch() and the the fixup on pdn (like AGP's) can't be carried
out that time. We have to do that in pcibios_root_bridge_prepare()
on maple/pasemi/powermac platforms where/when the pdn is available.
pcibios_root_bridge_prepare is called from subsys_initcall() which
is executed after core_initcall() so the code flow does not change.

At the mean while, the EEH device is created when pdn is populated,
meaning pdn and EEH device have same life cycle. In turn, we needn't
call eeh_dev_init() to create EEH device explicitly.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-06-21 15:30:56 +10:00
..
cmm.c powerpc/pseries: Drop unnecessary continue 2014-09-23 11:00:40 +10:00
dlpar.c powerpc/pseries: Enable kernel CPU dlpar from sysfs 2015-12-17 22:41:03 +11:00
dtl.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
eeh_pseries.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
event_sources.c powerpc/pseries: Remove MPIC from pseries event sources 2016-06-14 13:58:27 +10:00
firmware.c
hotplug-cpu.c powerpc/pseries: Remove MPIC from pseries cpu hotplug 2016-06-14 13:58:27 +10:00
hotplug-memory.c powerpc/pseries: Update LMB associativity index during DLPAR add/remove 2016-04-11 11:23:39 +10:00
hvCall_inst.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
hvCall.S powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define 2015-04-09 09:40:29 +02:00
hvconsole.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
hvcserver.c powerpc/pseries/hvcserver: don't memset pi_buff if it is null 2015-10-09 08:03:03 +11:00
io_event_irq.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
iommu.c powerpc/pseries: Fix PCI config address for DDW 2016-06-06 11:51:42 +10:00
Kconfig powerpc/pseries: Drop always true CONFIG_PSERIES_MSI 2015-10-15 20:31:56 +11:00
kexec.c powerpc/pseries: Remove MPIC from pseries kexec 2016-06-14 13:58:27 +10:00
lpar.c powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
lparcfg.c powerpc/mm/radix: Isolate hash table function from pseries guest code 2016-05-11 21:53:46 +10:00
Makefile powerpc/pseries: Drop always true CONFIG_PSERIES_MSI 2015-10-15 20:31:56 +11:00
mobility.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
msi.c powerpc/pci: Export pci_traverse_device_nodes() 2016-05-11 21:54:25 +10:00
nvram.c powerpc/pseries: Remove unused pstore headers in nvram.c 2016-06-14 16:05:35 +10:00
of_helpers.c powerpc/pseries: Correct string length in pseries_of_derive_parent() 2015-10-28 12:08:18 +09:00
of_helpers.h powerpc/pseries: extract of_helpers module 2015-10-05 21:11:24 +11:00
offline_states.h
pci_dlpar.c powerpc/pci: Move pci_find_bus_by_node() around 2016-05-11 21:54:24 +10:00
pci.c powerpc/pseries: Quieten ibm,pcie-link-speed-stats warning 2014-11-10 09:59:33 +11:00
power.c powerpc/sparse: Include headers containing prototypes 2016-06-16 22:40:19 +10:00
pseries_energy.c powerpc/sparse: make some things static 2016-06-16 22:23:11 +10:00
pseries.h powerpc/pseries: Remove MPIC from pseries kexec 2016-06-14 13:58:27 +10:00
ras.c powerpc/pseries: Limit EPOW reset event warnings 2015-12-14 20:41:49 +11:00
reconfig.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
rng.c powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
scanlog.c
setup.c powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
smp.c powerpc/pseries: Remove MPIC from pseries smp 2016-06-14 13:58:26 +10:00
suspend.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00