diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-09-07 22:44:10 +0000 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-10 09:35:32 +1000 |
commit | 82e8882f7f430806bd6bfd203aa4c3f41e3812e9 (patch) | |
tree | 6f70cec45cd6d6bf7e39fcf59ed85451a0dfcb17 /arch/powerpc/platforms/pseries/eeh.c | |
parent | 9b84348c92a122f3ccecda04083ada620312aa53 (diff) | |
download | op-kernel-dev-82e8882f7f430806bd6bfd203aa4c3f41e3812e9.zip op-kernel-dev-82e8882f7f430806bd6bfd203aa4c3f41e3812e9.tar.gz |
powerpc/eeh: Remove PE at appropriate time
During PCI hotplug and EEH recovery, the PE hierarchy tree might be
changed due to the PCI topology changes. At later point when the
PCI device is added, the PE will be created dynamically again.
The patch introduces new function to remove EEH devices from the
associated PE. That also can cause that the parent PE is removed
from the PE tree if the parent PE doesn't include valid EEH devices
and child PEs.
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.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 8f214906..b60863b 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c @@ -1156,6 +1156,7 @@ static void eeh_remove_device(struct pci_dev *dev) dev->dev.archdata.edev = NULL; pci_dev_put(dev); + eeh_rmv_from_parent_pe(edev); pci_addr_cache_remove_device(dev); eeh_sysfs_remove_device(dev); } |