be2net: Remove code that stops further access to BE NIC based on UE bits
authorAjit Khaparde <ajit.khaparde@emulex.com>
Mon, 8 Oct 2012 18:18:21 +0000 (18:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 9 Oct 2012 17:54:59 +0000 (13:54 -0400)
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>
drivers/net/ethernet/emulex/benet/be_main.c

index eb3f2cb3b93bbef296948f8479ab229783c01a94..d1b6cc5876393cc598a5d473fab158bb13477bdd 100644 (file)
@@ -2129,8 +2129,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");