Commit ecae29cb authored by Radoslaw Biernacki's avatar Radoslaw Biernacki Committed by David S. Miller

net: thunderx: Improvement for MBX interface debug messages

Adding debug messages in case of NACK for a mailbox message, also
did small cleanups.
Signed-off-by: default avatarRadoslaw Biernacki <rad@semihalf.com>
Signed-off-by: default avatarSunil Goutham <sgoutham@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a8671acc
...@@ -831,7 +831,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf) ...@@ -831,7 +831,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
mbx_addr += sizeof(u64); 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); __func__, mbx.msg.msg, vf);
switch (mbx.msg.msg) { switch (mbx.msg.msg) {
case NIC_MBOX_MSG_READY: case NIC_MBOX_MSG_READY:
...@@ -841,8 +841,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf) ...@@ -841,8 +841,7 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
nic->duplex[vf] = 0; nic->duplex[vf] = 0;
nic->speed[vf] = 0; nic->speed[vf] = 0;
} }
ret = 1; goto unlock;
break;
case NIC_MBOX_MSG_QS_CFG: case NIC_MBOX_MSG_QS_CFG:
reg_addr = NIC_PF_QSET_0_127_CFG | reg_addr = NIC_PF_QSET_0_127_CFG |
(mbx.qs.num << NIC_QS_ID_SHIFT); (mbx.qs.num << NIC_QS_ID_SHIFT);
...@@ -891,8 +890,10 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf) ...@@ -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); nic_tx_channel_cfg(nic, mbx.qs.num, &mbx.sq);
break; break;
case NIC_MBOX_MSG_SET_MAC: case NIC_MBOX_MSG_SET_MAC:
if (vf >= nic->num_vf_en) if (vf >= nic->num_vf_en) {
ret = -1; /* NACK */
break; break;
}
lmac = mbx.mac.vf_id; lmac = mbx.mac.vf_id;
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]); 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]); 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) ...@@ -947,10 +948,13 @@ static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
break; break;
} }
if (!ret) if (!ret) {
nic_mbx_send_ack(nic, vf); 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); nic_mbx_send_nack(nic, vf);
}
unlock: unlock:
nic->mbx_lock[vf] = false; nic->mbx_lock[vf] = false;
} }
......
...@@ -144,15 +144,19 @@ int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx) ...@@ -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 */ /* Wait for previous message to be acked, timeout 2sec */
while (!nic->pf_acked) { 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; return -EINVAL;
}
msleep(sleep); msleep(sleep);
if (nic->pf_acked) if (nic->pf_acked)
break; break;
timeout -= sleep; timeout -= sleep;
if (!timeout) { if (!timeout) {
netdev_err(nic->netdev, 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); (mbx->msg.msg & 0xFF), nic->vf_id);
return -EBUSY; return -EBUSY;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment