diff options
author | Zijie Pan <zijie.pan@6wind.com> | 2017-11-07 15:06:07 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2017-11-22 02:32:21 -0500 |
commit | 34c164de5867659f9162ae4fc9030b940bd40aaa (patch) | |
tree | 047c5491fd77ab015b69039b48d2f1be1cfb3f58 | |
parent | 3d72aebfc61b025a2478c9d2bbc3c8c4036a1c05 (diff) |
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>
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c index f8a794b72462..a3dc9b932946 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | |||
@@ -2218,18 +2218,19 @@ static int i40e_vc_add_mac_addr_msg(struct i40e_vf *vf, u8 *msg, u16 msglen) | |||
2218 | struct i40e_mac_filter *f; | 2218 | struct i40e_mac_filter *f; |
2219 | 2219 | ||
2220 | f = i40e_find_mac(vsi, al->list[i].addr); | 2220 | f = i40e_find_mac(vsi, al->list[i].addr); |
2221 | if (!f) | 2221 | if (!f) { |
2222 | f = i40e_add_mac_filter(vsi, al->list[i].addr); | 2222 | f = i40e_add_mac_filter(vsi, al->list[i].addr); |
2223 | 2223 | ||
2224 | if (!f) { | 2224 | if (!f) { |
2225 | dev_err(&pf->pdev->dev, | 2225 | dev_err(&pf->pdev->dev, |
2226 | "Unable to add MAC filter %pM for VF %d\n", | 2226 | "Unable to add MAC filter %pM for VF %d\n", |
2227 | al->list[i].addr, vf->vf_id); | 2227 | al->list[i].addr, vf->vf_id); |
2228 | ret = I40E_ERR_PARAM; | 2228 | ret = I40E_ERR_PARAM; |
2229 | spin_unlock_bh(&vsi->mac_filter_hash_lock); | 2229 | spin_unlock_bh(&vsi->mac_filter_hash_lock); |
2230 | goto error_param; | 2230 | goto error_param; |
2231 | } else { | 2231 | } else { |
2232 | vf->num_mac++; | 2232 | vf->num_mac++; |
2233 | } | ||
2233 | } | 2234 | } |
2234 | } | 2235 | } |
2235 | spin_unlock_bh(&vsi->mac_filter_hash_lock); | 2236 | spin_unlock_bh(&vsi->mac_filter_hash_lock); |