X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fhns3%2Fhns3_mbx.c;h=34c8c688fcaec3c84cbf3bc4c24353feebe176b5;hb=1256805dd54d;hp=b03a3d6a174e3fc9b599655929514635a5036e91;hpb=40486d38496241711955fc752ff4a6db4c89da7f;p=dpdk.git diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c index b03a3d6a17..34c8c688fc 100644 --- a/drivers/net/hns3/hns3_mbx.c +++ b/drivers/net/hns3/hns3_mbx.c @@ -219,6 +219,7 @@ hns3_mbx_handler(struct hns3_hw *hw) struct hns3_mac *mac = &hw->mac; enum hns3_reset_level reset_level; uint16_t *msg_q; + uint8_t opcode; uint32_t tail; tail = hw->arq.tail; @@ -227,7 +228,8 @@ hns3_mbx_handler(struct hns3_hw *hw) while (tail != hw->arq.head) { msg_q = hw->arq.msg_q[hw->arq.head]; - switch (msg_q[0]) { + opcode = msg_q[0] & 0xff; + switch (opcode) { case HNS3_MBX_LINK_STAT_CHANGE: memcpy(&mac->link_speed, &msg_q[2], sizeof(mac->link_speed)); @@ -249,7 +251,7 @@ hns3_mbx_handler(struct hns3_hw *hw) break; default: hns3_err(hw, "Fetched unsupported(%d) message from arq", - msg_q[0]); + opcode); break; } @@ -348,6 +350,7 @@ hns3_dev_handle_mbx_msg(struct hns3_hw *hw) struct hns3_cmd_desc *desc; uint32_t msg_data; uint16_t *msg_q; + uint8_t opcode; uint16_t flag; uint8_t *temp; int i; @@ -358,12 +361,13 @@ hns3_dev_handle_mbx_msg(struct hns3_hw *hw) desc = &crq->desc[crq->next_to_use]; req = (struct hns3_mbx_pf_to_vf_cmd *)desc->data; + opcode = req->msg[0] & 0xff; flag = rte_le_to_cpu_16(crq->desc[crq->next_to_use].flag); if (unlikely(!hns3_get_bit(flag, HNS3_CMDQ_RX_OUTVLD_B))) { hns3_warn(hw, "dropped invalid mailbox message, code = %d", - req->msg[0]); + opcode); /* dropping/not processing this invalid message */ crq->desc[crq->next_to_use].flag = 0; @@ -371,7 +375,7 @@ hns3_dev_handle_mbx_msg(struct hns3_hw *hw) continue; } - switch (req->msg[0]) { + switch (opcode) { case HNS3_MBX_PF_VF_RESP: resp->resp_status = hns3_resp_to_errno(req->msg[3]);