i40e: don't add zero MAC filter
When VFs are created, the MAC address defaults to all zeros, indicating to the VF driver that it should use a random MAC address. However, the PF driver was incorrectly adding this zero MAC to the filter table, along with the VF's randomly generated MAC address. Check for a good address before adding the default filter. While we're at it, make the error message a bit more useful. Change-ID: Ia100947d68140e0f73a19ba755cbffc3e79a8fcf Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
b36e9ab59b
commit
b7b713a8ea
|
@ -549,12 +549,15 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)
|
|||
i40e_vsi_add_pvid(vsi, vf->port_vlan_id);
|
||||
|
||||
spin_lock_bh(&vsi->mac_filter_list_lock);
|
||||
f = i40e_add_filter(vsi, vf->default_lan_addr.addr,
|
||||
vf->port_vlan_id ? vf->port_vlan_id : -1,
|
||||
true, false);
|
||||
if (!f)
|
||||
dev_info(&pf->pdev->dev,
|
||||
"Could not allocate VF MAC addr\n");
|
||||
if (is_valid_ether_addr(vf->default_lan_addr.addr)) {
|
||||
f = i40e_add_filter(vsi, vf->default_lan_addr.addr,
|
||||
vf->port_vlan_id ? vf->port_vlan_id : -1,
|
||||
true, false);
|
||||
if (!f)
|
||||
dev_info(&pf->pdev->dev,
|
||||
"Could not add MAC filter %pM for VF %d\n",
|
||||
vf->default_lan_addr.addr, vf->vf_id);
|
||||
}
|
||||
f = i40e_add_filter(vsi, brdcast,
|
||||
vf->port_vlan_id ? vf->port_vlan_id : -1,
|
||||
true, false);
|
||||
|
|
Loading…
Reference in New Issue