diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-09-08 02:44:07 +0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-10 03:35:30 +0400 |
commit | 55037d176107c33ac79528bf9ab282a6b0b51e16 (patch) | |
tree | 4c7910c9ff2c83f072e9bdef0c6079b1ed2d4d51 /arch/powerpc/platforms/pseries/eeh_dev.c | |
parent | 646a8499403e049845dda3141ec1ac021f029f11 (diff) | |
download | linux-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.c | 4 |
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); |