linux_dsm_epyc7002/arch/powerpc/platforms
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
..
8xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
40x powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
44x powerpc/44x/Akebono: Remove select of IBM_EMAC_RGMII_WOL 2014-12-29 15:45:44 +11:00
52xx powerpc: mpc52xx_gpt: use gpiochip data pointer 2016-03-30 10:50:47 +02:00
82xx mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
83xx powerpc: mpc8349emitx: use gpiochip data pointer 2016-03-30 10:51:54 +02:00
85xx powerpc/mpc85xx: Add CPU hotplug support for E6500 2016-03-04 23:58:38 -06:00
86xx powerpc/86xx: Consolidate common platform code 2016-03-11 19:14:12 -06:00
512x powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
amigaone lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
cell powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
chrp genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
embedded6xx powerpc32: remove ioremap_base 2016-03-11 17:18:02 -06:00
maple powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
pasemi powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
powermac powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
powernv powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
ps3 powerpc/mm/hash: Add support for Power9 Hash 2016-05-01 18:32:40 +10:00
pseries powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
Kconfig.cputype powerpc/mm/radix: Add THP support for 4K linux page size 2016-05-11 21:53:58 +10:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00