[Quantal][PATCH 29/29] be2net: Remove code that stops further access to BE NIC based on UE bits
Jesse Sung
jesse.sung at canonical.com
Thu Dec 13 06:50:02 UTC 2012
From: Ajit Khaparde <ajit.khaparde at 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 at emulex.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit 1451ae6ef8bff77007338b2870bb3de2658afff8)
Signed-off-by: Wen-chien Jesse Sung <jesse.sung at 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;
dev_err(&adapter->pdev->dev,
"Error detected in the card\n");
--
1.7.10.4
More information about the kernel-team
mailing list