be2net: add a log message for POST timeout in Lancer
authorKalesh AP <kalesh.purayil@emulex.com>
Tue, 20 Jan 2015 08:51:46 +0000 (03:51 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sun, 25 Jan 2015 01:22:42 +0000 (17:22 -0800)
This patch adds a log message in case of POST timeout in Lancer to
help debugging failure cases. It also logs sliport_status register value in
case of POST timeout.

Signed-off-by: Kalesh AP <kalesh.purayil@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_cmds.c

index 9772f49a483712af73f375f4935207f86e1650b3..2021eb067b5495503eb4d27922029c0ce7041ae2 100644 (file)
@@ -573,7 +573,7 @@ static int lancer_wait_ready(struct be_adapter *adapter)
 {
 #define SLIPORT_READY_TIMEOUT 30
        u32 sliport_status;
-       int status = 0, i;
+       int i;
 
        for (i = 0; i < SLIPORT_READY_TIMEOUT; i++) {
                sliport_status = ioread32(adapter->db + SLIPORT_STATUS_OFFSET);
@@ -584,9 +584,9 @@ static int lancer_wait_ready(struct be_adapter *adapter)
        }
 
        if (i == SLIPORT_READY_TIMEOUT)
-               status = -1;
+               return sliport_status ? : -1;
 
-       return status;
+       return 0;
 }
 
 static bool lancer_provisioning_error(struct be_adapter *adapter)
@@ -624,7 +624,7 @@ int lancer_test_and_set_rdy_state(struct be_adapter *adapter)
                        iowrite32(SLI_PORT_CONTROL_IP_MASK,
                                  adapter->db + SLIPORT_CONTROL_OFFSET);
 
-                       /* check adapter has corrected the error */
+                       /* check if adapter has corrected the error */
                        status = lancer_wait_ready(adapter);
                        sliport_status = ioread32(adapter->db +
                                                  SLIPORT_STATUS_OFFSET);
@@ -655,7 +655,11 @@ int be_fw_wait_ready(struct be_adapter *adapter)
 
        if (lancer_chip(adapter)) {
                status = lancer_wait_ready(adapter);
-               return status;
+               if (status) {
+                       stage = status;
+                       goto err;
+               }
+               return 0;
        }
 
        do {
@@ -671,7 +675,8 @@ int be_fw_wait_ready(struct be_adapter *adapter)
                timeout += 2;
        } while (timeout < 60);
 
-       dev_err(dev, "POST timeout; stage=0x%x\n", stage);
+err:
+       dev_err(dev, "POST timeout; stage=%#x\n", stage);
        return -1;
 }