net: thunderx: Improvement for MBX interface debug messages
authorRadoslaw Biernacki <rad@semihalf.com>
Fri, 12 Aug 2016 11:21:38 +0000 (16:51 +0530)
committerDavid S. Miller <davem@davemloft.net>
Sat, 13 Aug 2016 18:59:32 +0000 (11:59 -0700)
Adding debug messages in case of NACK for a mailbox message, also
did small cleanups.

Signed-off-by: Radoslaw Biernacki <rad@semihalf.com>
Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/thunder/nic_main.c
drivers/net/ethernet/cavium/thunder/nicvf_main.c

index b982e5ff7bbe124ee7ec096443838874f5b44f6c..c706b2e315984fe0ec10034e8939f5e071a117c1 100644 (file)
@@ -831,7 +831,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
                mbx_addr += sizeof(u64);
        }
 
-       dev_dbg(&nic->pdev->dev, "%s: Mailbox msg %d from VF%d\n",
+       dev_dbg(&nic->pdev->dev, "%s: Mailbox msg 0x%02x from VF%d\n",
                __func__, mbx.msg.msg, vf);
        switch (mbx.msg.msg) {
        case NIC_MBOX_MSG_READY:
@@ -841,8 +841,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
                        nic->duplex[vf] = 0;
                        nic->speed[vf] = 0;
                }
-               ret = 1;
-               break;
+               goto unlock;
        case NIC_MBOX_MSG_QS_CFG:
                reg_addr = NIC_PF_QSET_0_127_CFG |
                           (mbx.qs.num << NIC_QS_ID_SHIFT);
@@ -891,8 +890,10 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
                nic_tx_channel_cfg(nic, mbx.qs.num, &mbx.sq);
                break;
        case NIC_MBOX_MSG_SET_MAC:
-               if (vf >= nic->num_vf_en)
+               if (vf >= nic->num_vf_en) {
+                       ret = -1; /* NACK */
                        break;
+               }
                lmac = mbx.mac.vf_id;
                bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
                lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
@@ -947,10 +948,13 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
                break;
        }
 
-       if (!ret)
+       if (!ret) {
                nic_mbx_send_ack(nic, vf);
-       else if (mbx.msg.msg != NIC_MBOX_MSG_READY)
+       } else if (mbx.msg.msg != NIC_MBOX_MSG_READY) {
+               dev_err(&nic->pdev->dev, "NACK for MBOX 0x%02x from VF %d\n",
+                       mbx.msg.msg, vf);
                nic_mbx_send_nack(nic, vf);
+       }
 unlock:
        nic->mbx_lock[vf] = false;
 }
index 5335ff1bf69a4b35b805b27f9756951b141ddcf0..dd57361aa3fc2167f143daa118984c30f45318db 100644 (file)
@@ -144,15 +144,19 @@ int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx)
 
        /* Wait for previous message to be acked, timeout 2sec */
        while (!nic->pf_acked) {
-               if (nic->pf_nacked)
+               if (nic->pf_nacked) {
+                       netdev_err(nic->netdev,
+                                  "PF NACK to mbox msg 0x%02x from VF%d\n",
+                                  (mbx->msg.msg & 0xFF), nic->vf_id);
                        return -EINVAL;
+               }
                msleep(sleep);
                if (nic->pf_acked)
                        break;
                timeout -= sleep;
                if (!timeout) {
                        netdev_err(nic->netdev,
-                                  "PF didn't ack to mbox msg %d from VF%d\n",
+                                  "PF didn't ACK to mbox msg 0x%02x from VF%d\n",
                                   (mbx->msg.msg & 0xFF), nic->vf_id);
                        return -EBUSY;
                }