net/ice/base: support link default override
[dpdk.git] / drivers / net / hns3 / hns3_mbx.c
index b03a3d6..34c8c68 100644 (file)
@@ -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]);