X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fhns3%2Fhns3_mbx.c;h=61d15845e794a31dca8c2dfd8f3a42969fc21aa4;hb=2b6d6d71a0992220043b2f5c3b885c486e7921b7;hp=1d500b984ca400d4f53da608489b00af487deb5c;hpb=df96fd0d73955bdc7ca3909e772ff2ad903249c6;p=dpdk.git diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c index 1d500b984c..61d15845e7 100644 --- a/drivers/net/hns3/hns3_mbx.c +++ b/drivers/net/hns3/hns3_mbx.c @@ -83,7 +83,7 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code0, uint16_t code1, end = now + HNS3_MAX_RETRY_MS; while ((hw->mbx_resp.head != hw->mbx_resp.tail + hw->mbx_resp.lost) && (now < end)) { - if (rte_atomic16_read(&hw->reset.disable_cmd)) { + if (__atomic_load_n(&hw->reset.disable_cmd, __ATOMIC_RELAXED)) { hns3_err(hw, "Don't wait for mbx respone because of " "disable_cmd"); return -EBUSY; @@ -203,8 +203,9 @@ hns3_cmd_crq_empty(struct hns3_hw *hw) static void hns3_mbx_handler(struct hns3_hw *hw) { - struct hns3_mac *mac = &hw->mac; enum hns3_reset_level reset_level; + uint8_t link_status, link_duplex; + uint32_t link_speed; uint16_t *msg_q; uint8_t opcode; uint32_t tail; @@ -218,10 +219,11 @@ hns3_mbx_handler(struct hns3_hw *hw) opcode = msg_q[0] & 0xff; switch (opcode) { case HNS3_MBX_LINK_STAT_CHANGE: - memcpy(&mac->link_speed, &msg_q[2], - sizeof(mac->link_speed)); - mac->link_status = rte_le_to_cpu_16(msg_q[1]); - mac->link_duplex = (uint8_t)rte_le_to_cpu_16(msg_q[4]); + memcpy(&link_speed, &msg_q[2], sizeof(link_speed)); + link_status = rte_le_to_cpu_16(msg_q[1]); + link_duplex = (uint8_t)rte_le_to_cpu_16(msg_q[4]); + hns3vf_update_link_status(hw, link_status, link_speed, + link_duplex); break; case HNS3_MBX_ASSERTING_RESET: /* PF has asserted reset hence VF should go in pending @@ -310,7 +312,7 @@ hns3_handle_link_change_event(struct hns3_hw *hw, if (!req->msg[LINK_STATUS_OFFSET]) hns3_link_fail_parse(hw, req->msg[LINK_FAIL_CODE_OFFSET]); - hns3_update_link_status(hw); + hns3_update_link_status_and_event(hw); } static void @@ -367,7 +369,7 @@ hns3_dev_handle_mbx_msg(struct hns3_hw *hw) int i; while (!hns3_cmd_crq_empty(hw)) { - if (rte_atomic16_read(&hw->reset.disable_cmd)) + if (__atomic_load_n(&hw->reset.disable_cmd, __ATOMIC_RELAXED)) return; desc = &crq->desc[crq->next_to_use];