This patch fixes the endian issue when PF get mbx message flag.

Signed-off-by: Peng Li <lipeng...@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c 
b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index 3a2c174..ed34ca3 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -335,11 +335,11 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
        struct hclge_mbx_vf_to_pf_cmd *req;
        struct hclge_vport *vport;
        struct hclge_desc *desc;
-       int ret;
+       int ret, flag;
 
+       flag = le16_to_cpu(crq->desc[crq->next_to_use].flag);
        /* handle all the mailbox requests in the queue */
-       while (hnae_get_bit(crq->desc[crq->next_to_use].flag,
-                           HCLGE_CMDQ_RX_OUTVLD_B)) {
+       while (hnae_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B)) {
                desc = &crq->desc[crq->next_to_use];
                req = (struct hclge_mbx_vf_to_pf_cmd *)desc->data;
 
@@ -414,6 +414,7 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
                }
                crq->desc[crq->next_to_use].flag = 0;
                hclge_mbx_ring_ptr_move_crq(crq);
+               flag = le16_to_cpu(crq->desc[crq->next_to_use].flag);
        }
 
        /* Write back CMDQ_RQ header pointer, M7 need this pointer */
-- 
2.9.3

Reply via email to