be2net: stop checking the UE registers after an EEH error
authorSathya Perla <sathya.perla@emulex.com>
Thu, 10 Nov 2011 19:17:58 +0000 (19:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 12 Nov 2011 22:59:35 +0000 (17:59 -0500)
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c

index 83d971d8a5a33d87005452ebf1c57ec810e22030..99da07ff451023646f6039ece647986cddc23285 100644 (file)
@@ -1978,6 +1978,9 @@ void be_detect_dump_ue(struct be_adapter *adapter)
        u32 sliport_status = 0, sliport_err1 = 0, sliport_err2 = 0;
        u32 i;
 
+       if (adapter->eeh_err || adapter->ue_detected)
+               return;
+
        if (lancer_chip(adapter)) {
                sliport_status = ioread32(adapter->db + SLIPORT_STATUS_OFFSET);
                if (sliport_status & SLIPORT_STATUS_ERR_MASK) {
@@ -2039,8 +2042,7 @@ static void be_worker(struct work_struct *work)
        struct be_rx_obj *rxo;
        int i;
 
-       if (!adapter->ue_detected)
-               be_detect_dump_ue(adapter);
+       be_detect_dump_ue(adapter);
 
        /* when interrupts are not yet enabled, just reap any pending
        * mcc completions */