[PATCH Vivid SRU v2] powerpc/eeh: Fix recursive fenced PHB on Broadcom shiner adapter

tim.gardner at canonical.com tim.gardner at canonical.com
Wed Jan 20 20:48:54 UTC 2016


From: Gavin Shan <gwshan at linux.vnet.ibm.com>

BugLink: http://bugs.launchpad.net/bugs/1532942

Similar to commit b6541db ("powerpc/eeh: Block PCI config access
upon frozen PE"), this blocks the PCI config space of Broadcom
Shiner adapter until PE reset is completed, to avoid recursive
fenced PHB when dumping PCI config registers during the period
of error recovery.

   ~# lspci -ns 0003:03:00.0
   0003:03:00.0 0200: 14e4:168a (rev 10)
   ~# lspci -s 0003:03:00.0
   0003:03:00.0 Ethernet controller: Broadcom Corporation \
                NetXtreme II BCM57800 1/10 Gigabit Ethernet (rev 10)

Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
(back ported from commit 353169acf1858bb2dc3f91475dafabce547de14c)
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>

Conflicts:
	arch/powerpc/platforms/powernv/eeh-powernv.c
Acked-by: Brad Figg <brad.figg at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---

This is a replacement patch since the first back port didn't compile. Oops.

 arch/powerpc/platforms/powernv/eeh-powernv.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c b/arch/powerpc/platforms/powernv/eeh-powernv.c
index e261869..17affaf 100644
--- a/arch/powerpc/platforms/powernv/eeh-powernv.c
+++ b/arch/powerpc/platforms/powernv/eeh-powernv.c
@@ -193,10 +193,15 @@ static int powernv_eeh_dev_probe(struct pci_dev *dev, void *flag)
 	 * that PE to block its config space.
 	 *
 	 * Broadcom Austin 4-ports NICs (14e4:1657)
+	 * Broadcom Shiner 4-ports 1G NICs (14e4:168a)
 	 * Broadcom Shiner 2-ports 10G NICs (14e4:168e)
 	 */
-	if ((dev->vendor == PCI_VENDOR_ID_BROADCOM && dev->device == 0x1657) ||
-	    (dev->vendor == PCI_VENDOR_ID_BROADCOM && dev->device == 0x168e))
+	if ((dev->vendor == PCI_VENDOR_ID_BROADCOM &&
+	     dev->device == 0x1657) ||
+	    (dev->vendor == PCI_VENDOR_ID_BROADCOM &&
+	     dev->device == 0x168a) ||
+	    (dev->vendor == PCI_VENDOR_ID_BROADCOM &&
+	     dev->device == 0x168e))
 		edev->pe->state |= EEH_PE_CFG_RESTRICTED;
 
 	/*
-- 
1.9.1





More information about the kernel-team mailing list