mirror of
https://github.com/torvalds/linux
synced 2024-10-07 11:53:31 +00:00
net: hns3: add barrier in vf mailbox reply process
In hclgevf_mbx_handler() and hclgevf_get_mbx_resp() functions,
there is a typical store-store and load-load scenario between
received_resp and additional_info. This patch adds barrier
to fix the problem.
Fixes: 4671042f1e
("net: hns3: add match_id to check mailbox response from PF to VF")
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
472a2ff63e
commit
ac92c0a9a0
|
@ -63,6 +63,9 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1,
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ensure additional_info will be seen after received_resp */
|
||||||
|
smp_rmb();
|
||||||
|
|
||||||
if (i >= HCLGEVF_MAX_TRY_TIMES) {
|
if (i >= HCLGEVF_MAX_TRY_TIMES) {
|
||||||
dev_err(&hdev->pdev->dev,
|
dev_err(&hdev->pdev->dev,
|
||||||
"VF could not get mbx(%u,%u) resp(=%d) from PF in %d tries\n",
|
"VF could not get mbx(%u,%u) resp(=%d) from PF in %d tries\n",
|
||||||
|
@ -178,6 +181,10 @@ static void hclgevf_handle_mbx_response(struct hclgevf_dev *hdev,
|
||||||
resp->resp_status = hclgevf_resp_to_errno(resp_status);
|
resp->resp_status = hclgevf_resp_to_errno(resp_status);
|
||||||
memcpy(resp->additional_info, req->msg.resp_data,
|
memcpy(resp->additional_info, req->msg.resp_data,
|
||||||
HCLGE_MBX_MAX_RESP_DATA_SIZE * sizeof(u8));
|
HCLGE_MBX_MAX_RESP_DATA_SIZE * sizeof(u8));
|
||||||
|
|
||||||
|
/* ensure additional_info will be seen before setting received_resp */
|
||||||
|
smp_wmb();
|
||||||
|
|
||||||
if (match_id) {
|
if (match_id) {
|
||||||
/* If match_id is not zero, it means PF support match_id.
|
/* If match_id is not zero, it means PF support match_id.
|
||||||
* if the match_id is right, VF get the right response, or
|
* if the match_id is right, VF get the right response, or
|
||||||
|
|
Loading…
Reference in a new issue