summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/pseries/eeh_dev.c
diff options
context:
space:
mode:
authorGavin Shan <shangw@linux.vnet.ibm.com>2012-09-08 02:44:07 +0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-09-10 03:35:30 +0400
commit55037d176107c33ac79528bf9ab282a6b0b51e16 (patch)
tree4c7910c9ff2c83f072e9bdef0c6079b1ed2d4d51 /arch/powerpc/platforms/pseries/eeh_dev.c
parent646a8499403e049845dda3141ec1ac021f029f11 (diff)
downloadlinux-55037d176107c33ac79528bf9ab282a6b0b51e16.tar.xz
powerpc/eeh: Create PEs for PHBs
For one particular PE, it's only meaningful in the ancestor PHB domain. Therefore, each PHB should have its own PE hierarchy tree to trace those PEs created against the PHB. The patch creates PEs for the PHBs and put those PEs into the global link list traced by "eeh_phb_pe". The link list of PEs would be first level of overall PE hierarchy tree across the system. Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries/eeh_dev.c')
-rw-r--r--arch/powerpc/platforms/pseries/eeh_dev.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh_dev.c b/arch/powerpc/platforms/pseries/eeh_dev.c
index a0cee3a29c97..66442341d3a6 100644
--- a/arch/powerpc/platforms/pseries/eeh_dev.c
+++ b/arch/powerpc/platforms/pseries/eeh_dev.c
@@ -65,6 +65,7 @@ void * __devinit eeh_dev_init(struct device_node *dn, void *data)
PCI_DN(dn)->edev = edev;
edev->dn = dn;
edev->phb = phb;
+ INIT_LIST_HEAD(&edev->list);
return NULL;
}
@@ -80,6 +81,9 @@ void __devinit eeh_dev_phb_init_dynamic(struct pci_controller *phb)
{
struct device_node *dn = phb->dn;
+ /* EEH PE for PHB */
+ eeh_phb_pe_create(phb);
+
/* EEH device for PHB */
eeh_dev_init(dn, phb);