mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
net: hns3: remove check VF uc mac exist when set by PF
If users set unicast mac address for VFs by PF, they need to guarantee all
VFs' address is different. This patch removes the check mac address exist
of VFs, for usrs can refresh mac addresses of all VFs directly without
need to modify the exist mac address to other value firstly.
Fixes: 8e6de441b8
("net: hns3: add support for configuring VF MAC from the host")
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1122eac194
commit
91fcc79bff
1 changed files with 0 additions and 36 deletions
|
@ -9418,36 +9418,6 @@ static int hclge_get_mac_ethertype_cmd_status(struct hclge_dev *hdev,
|
||||||
return return_status;
|
return return_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hclge_check_vf_mac_exist(struct hclge_vport *vport, int vf_idx,
|
|
||||||
u8 *mac_addr)
|
|
||||||
{
|
|
||||||
struct hclge_mac_vlan_tbl_entry_cmd req;
|
|
||||||
struct hclge_dev *hdev = vport->back;
|
|
||||||
struct hclge_desc desc;
|
|
||||||
u16 egress_port = 0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (is_zero_ether_addr(mac_addr))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
memset(&req, 0, sizeof(req));
|
|
||||||
hnae3_set_field(egress_port, HCLGE_MAC_EPORT_VFID_M,
|
|
||||||
HCLGE_MAC_EPORT_VFID_S, vport->vport_id);
|
|
||||||
req.egress_port = cpu_to_le16(egress_port);
|
|
||||||
hclge_prepare_mac_addr(&req, mac_addr, false);
|
|
||||||
|
|
||||||
if (hclge_lookup_mac_vlan_tbl(vport, &req, &desc, false) != -ENOENT)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
vf_idx += HCLGE_VF_VPORT_START_NUM;
|
|
||||||
for (i = HCLGE_VF_VPORT_START_NUM; i < hdev->num_alloc_vport; i++)
|
|
||||||
if (i != vf_idx &&
|
|
||||||
ether_addr_equal(mac_addr, hdev->vport[i].vf_info.mac))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int hclge_set_vf_mac(struct hnae3_handle *handle, int vf,
|
static int hclge_set_vf_mac(struct hnae3_handle *handle, int vf,
|
||||||
u8 *mac_addr)
|
u8 *mac_addr)
|
||||||
{
|
{
|
||||||
|
@ -9465,12 +9435,6 @@ static int hclge_set_vf_mac(struct hnae3_handle *handle, int vf,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hclge_check_vf_mac_exist(vport, vf, mac_addr)) {
|
|
||||||
dev_err(&hdev->pdev->dev, "Specified MAC(=%pM) exists!\n",
|
|
||||||
mac_addr);
|
|
||||||
return -EEXIST;
|
|
||||||
}
|
|
||||||
|
|
||||||
ether_addr_copy(vport->vf_info.mac, mac_addr);
|
ether_addr_copy(vport->vf_info.mac, mac_addr);
|
||||||
|
|
||||||
if (test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state)) {
|
if (test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state)) {
|
||||||
|
|
Loading…
Reference in a new issue