[Quantal,29/29] be2net: Remove code that stops further access to BE NIC based on UE bits

Message ID 1355381402-10497-29-git-send-email-jesse.sung@canonical.com
State New
Headers show

Commit Message

Wen-chien Jesse Sung Dec. 13, 2012, 6:50 a.m.
From: Ajit Khaparde <ajit.khaparde@emulex.com>

BugLink: https://launchpad.net/bugs/1083088

On certain platforms, BE hardware could  falsely indicate UE.
For BE family of NICs, do not set hw_error based on the UE bits.
If there was a real fatal error, the corresponding h/w block will
automatically go offline and stop traffic.

Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 1451ae6ef8bff77007338b2870bb3de2658afff8)

Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com>
 drivers/net/ethernet/emulex/benet/be_main.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)


diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index c4fcdb0..9baf59d 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2128,8 +2128,11 @@  void be_detect_error(struct be_adapter *adapter)
 		ue_hi = (ue_hi & ~ue_hi_mask);
-	if (ue_lo || ue_hi ||
-		sliport_status & SLIPORT_STATUS_ERR_MASK) {
+	/* On certain platforms BE hardware can indicate spurious UEs.
+	 * Allow the h/w to stop working completely in case of a real UE.
+	 * Hence not setting the hw_error for UE detection.
+	 */
+	if (sliport_status & SLIPORT_STATUS_ERR_MASK) {
 		adapter->hw_error = true;
 			"Error detected in the card\n");