net: hns3: Fix for mailbox message truncated problem
authorFuyun Liang <liangfuyun1@huawei.com>
Fri, 6 Jul 2018 10:27:59 +0000 (11:27 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 7 Jul 2018 02:13:06 +0000 (11:13 +0900)
The payload of mailbox message is 16 byte and the value of
HCLGE_MBX_MAX_ARQ_MSG_SIZE is 8. A message truncated problem will
happen when mailbox message is converted to ARQ message. This patch
replaces HCLGE_MBX_MAX_ARQ_MSG_SIZE with the size of ARQ message in
hclgevf_mbx_handler to fix this problem.

Fixes: b11a0bb231f3 ("net: hns3: Add mailbox support to VF driver")
Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c

index 173ca27957ef71b4e462c7b8ff590686cedb6e1b..e9d5a4f96304e114722caea9c21509a4e0b6cc6c 100644 (file)
@@ -208,7 +208,8 @@ void hclgevf_mbx_handler(struct hclgevf_dev *hdev)
 
                        /* tail the async message in arq */
                        msg_q = hdev->arq.msg_q[hdev->arq.tail];
-                       memcpy(&msg_q[0], req->msg, HCLGE_MBX_MAX_ARQ_MSG_SIZE);
+                       memcpy(&msg_q[0], req->msg,
+                              HCLGE_MBX_MAX_ARQ_MSG_SIZE * sizeof(u16));
                        hclge_mbx_tail_ptr_move_arq(hdev->arq);
                        hdev->arq.count++;