diff mbox

[1/1] bnx2x: Force fundamental reset for EEH recovery

Message ID 201503041410.t24EAAix006027@d03av03.boulder.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Brian King March 4, 2015, 2:09 p.m. UTC
EEH recovery for bnx2x based adapters is not reliable on all Power
systems using the default hot reset, which can result in an
unrecoverable EEH error. Forcing the use of fundamental reset
during EEH recovery fixes this.

Cc: stable<stable@vger.kernel.org>
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
---

 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |    3 +++
 1 file changed, 3 insertions(+)

Comments

David Miller March 5, 2015, 8:38 p.m. UTC | #1
From: Brian King <brking@linux.vnet.ibm.com>
Date: Wed, 04 Mar 2015 08:09:44 -0600

> EEH recovery for bnx2x based adapters is not reliable on all Power
> systems using the default hot reset, which can result in an
> unrecoverable EEH error. Forcing the use of fundamental reset
> during EEH recovery fixes this.
> 
> Cc: stable<stable@vger.kernel.org>
> Signed-off-by: Brian King <brking@linux.vnet.ibm.com>

Applied, thanks Brian.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff -puN drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c~bnx2x_needs_freset drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
--- linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c~bnx2x_needs_freset	2015-03-03 08:46:09.281961703 -0600
+++ linux-bjking1/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c	2015-03-03 08:46:09.287961639 -0600
@@ -12722,6 +12722,9 @@  static int bnx2x_init_dev(struct bnx2x *
 	pci_write_config_dword(bp->pdev, PCICFG_GRC_ADDRESS,
 			       PCICFG_VENDOR_ID_OFFSET);
 
+	/* Set PCIe reset type to fundamental for EEH recovery */
+	pdev->needs_freset = 1;
+
 	/* AER (Advanced Error reporting) configuration */
 	rc = pci_enable_pcie_error_reporting(pdev);
 	if (!rc)