mirror of https://gitee.com/openkylin/linux.git
net: hns3: add result checking for VF when modify unicast mac address
VF changes unicast mac address by sending mailbox msg to PF, then PF completes the mac address modification. It may fail when the target uc mac address is already in the mac_vlan table. VF should be aware of it by reading the message result. Signed-off-by: Jian Shen <shenjian15@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d07b6bb435
commit
2097fdefa5
|
@ -365,7 +365,7 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
|
|||
ret);
|
||||
break;
|
||||
case HCLGE_MBX_SET_UNICAST:
|
||||
ret = hclge_set_vf_uc_mac_addr(vport, req, false);
|
||||
ret = hclge_set_vf_uc_mac_addr(vport, req, true);
|
||||
if (ret)
|
||||
dev_err(&hdev->pdev->dev,
|
||||
"PF fail(%d) to set VF UC MAC Addr\n",
|
||||
|
|
|
@ -744,7 +744,7 @@ static int hclgevf_set_mac_addr(struct hnae3_handle *handle, void *p,
|
|||
|
||||
status = hclgevf_send_mbx_msg(hdev, HCLGE_MBX_SET_UNICAST,
|
||||
subcode, msg_data, ETH_ALEN * 2,
|
||||
false, NULL, 0);
|
||||
true, NULL, 0);
|
||||
if (!status)
|
||||
ether_addr_copy(hdev->hw.mac.mac_addr, new_mac_addr);
|
||||
|
||||
|
|
|
@ -54,6 +54,10 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1,
|
|||
mbx_resp = &hdev->mbx_resp;
|
||||
r_code0 = (u16)(mbx_resp->origin_mbx_msg >> 16);
|
||||
r_code1 = (u16)(mbx_resp->origin_mbx_msg & 0xff);
|
||||
|
||||
if (mbx_resp->resp_status)
|
||||
return mbx_resp->resp_status;
|
||||
|
||||
if (resp_data)
|
||||
memcpy(resp_data, &mbx_resp->additional_info[0], resp_len);
|
||||
|
||||
|
|
Loading…
Reference in New Issue