diff options
author | Mike Qiu <qiudayu@linux.vnet.ibm.com> | 2014-06-26 02:58:47 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-08-05 01:28:49 -0400 |
commit | dadcd6d6e71311f433a16b71203d983944f14095 (patch) | |
tree | 4792fe74da970ec478376c0398f9126fc1e0b69c /arch/powerpc/kernel | |
parent | 1b69be5e8afc634f39ad695a6ab6aad0cf0975c7 (diff) |
powerpc/eeh: sysfs entries lost
The sysfs entries are lost because of commit 2213fb1 ("powerpc/eeh:
Skip eeh sysfs when eeh is disabled"). That commit added condition
to create sysfs entries with EEH_ENABLED, which isn't populated
when trying to create sysfs entries on PowerNV platform during system
boot time. The patch fixes the issue by:
* Reoder EEH initialization functions so that they're same on
PowerNV/pSeries.
* Cache PE's primary bus by PowerNV platform instead of EEH core
to avoid kernel crash caused by the function reorder. Another
benefit with this is to avoid one eeh_probe_mode_dev() in EEH
core.
Signed-off-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/eeh_pe.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/arch/powerpc/kernel/eeh_pe.c b/arch/powerpc/kernel/eeh_pe.c index fbd01eba4473..1dce071a9ac3 100644 --- a/arch/powerpc/kernel/eeh_pe.c +++ b/arch/powerpc/kernel/eeh_pe.c | |||
@@ -351,17 +351,6 @@ int eeh_add_to_parent_pe(struct eeh_dev *edev) | |||
351 | pe->config_addr = edev->config_addr; | 351 | pe->config_addr = edev->config_addr; |
352 | 352 | ||
353 | /* | 353 | /* |
354 | * While doing PE reset, we probably hot-reset the | ||
355 | * upstream bridge. However, the PCI devices including | ||
356 | * the associated EEH devices might be removed when EEH | ||
357 | * core is doing recovery. So that won't safe to retrieve | ||
358 | * the bridge through downstream EEH device. We have to | ||
359 | * trace the parent PCI bus, then the upstream bridge. | ||
360 | */ | ||
361 | if (eeh_probe_mode_dev()) | ||
362 | pe->bus = eeh_dev_to_pci_dev(edev)->bus; | ||
363 | |||
364 | /* | ||
365 | * Put the new EEH PE into hierarchy tree. If the parent | 354 | * Put the new EEH PE into hierarchy tree. If the parent |
366 | * can't be found, the newly created PE will be attached | 355 | * can't be found, the newly created PE will be attached |
367 | * to PHB directly. Otherwise, we have to associate the | 356 | * to PHB directly. Otherwise, we have to associate the |