i40e: fix the calculation of VFs mac addresses
num_mac should be increased only after the call to i40e_add_mac_filter(). Fixes: 5f527ba962e2 ("i40e: Limit the number of MAC and VLAN addresses that can be added for VFs") Signed-off-by: Zijie Pan <zijie.pan@6wind.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Reviewed-by: Tushar Dave <tushar.n.dave@oracle.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
@ -2218,18 +2218,19 @@ static int i40e_vc_add_mac_addr_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
|
||||
struct i40e_mac_filter *f;
|
||||
|
||||
f = i40e_find_mac(vsi, al->list[i].addr);
|
||||
if (!f)
|
||||
if (!f) {
|
||||
f = i40e_add_mac_filter(vsi, al->list[i].addr);
|
||||
|
||||
if (!f) {
|
||||
dev_err(&pf->pdev->dev,
|
||||
"Unable to add MAC filter %pM for VF %d\n",
|
||||
al->list[i].addr, vf->vf_id);
|
||||
ret = I40E_ERR_PARAM;
|
||||
spin_unlock_bh(&vsi->mac_filter_hash_lock);
|
||||
goto error_param;
|
||||
} else {
|
||||
vf->num_mac++;
|
||||
if (!f) {
|
||||
dev_err(&pf->pdev->dev,
|
||||
"Unable to add MAC filter %pM for VF %d\n",
|
||||
al->list[i].addr, vf->vf_id);
|
||||
ret = I40E_ERR_PARAM;
|
||||
spin_unlock_bh(&vsi->mac_filter_hash_lock);
|
||||
goto error_param;
|
||||
} else {
|
||||
vf->num_mac++;
|
||||
}
|
||||
}
|
||||
}
|
||||
spin_unlock_bh(&vsi->mac_filter_hash_lock);
|
||||
|
Reference in New Issue
Block a user