diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2013-06-05 03:34:02 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-06-30 00:08:34 -0400 |
commit | ea461abf61753b4b79e625a7c20650105b990f21 (patch) | |
tree | 2421df407fb41763a109b2edd2f4d4f01d08382c | |
parent | 6c355beafdbd0a62add3a3d89825ca87cf8ecec0 (diff) |
powerpc/eeh: Fix fetching bus for single-dev-PE
While running Linux as guest on top of phyp, we possiblly have
PE that includes single PCI device. However, we didn't return
its PCI bus correctly and it leads to failure on recovery from
EEH errors for single-dev-PE. The patch fixes the issue.
Cc: <stable@vger.kernel.org> # v3.7+
Cc: Steve Best <sbest@us.ibm.com>
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh_pe.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh_pe.c b/arch/powerpc/platforms/pseries/eeh_pe.c index fe43d1aa2cf1..9d4a9e8562b2 100644 --- a/arch/powerpc/platforms/pseries/eeh_pe.c +++ b/arch/powerpc/platforms/pseries/eeh_pe.c | |||
@@ -639,7 +639,8 @@ struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe) | |||
639 | 639 | ||
640 | if (pe->type & EEH_PE_PHB) { | 640 | if (pe->type & EEH_PE_PHB) { |
641 | bus = pe->phb->bus; | 641 | bus = pe->phb->bus; |
642 | } else if (pe->type & EEH_PE_BUS) { | 642 | } else if (pe->type & EEH_PE_BUS || |
643 | pe->type & EEH_PE_DEVICE) { | ||
643 | edev = list_first_entry(&pe->edevs, struct eeh_dev, list); | 644 | edev = list_first_entry(&pe->edevs, struct eeh_dev, list); |
644 | pdev = eeh_dev_to_pci_dev(edev); | 645 | pdev = eeh_dev_to_pci_dev(edev); |
645 | if (pdev) | 646 | if (pdev) |