Message ID | 20171107163259.18639-1-nicolas.dichtel@6wind.com |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net] i40e: fix the calculation of VFs mac addresses | expand |
On 11/07/2017 08:32 AM, Nicolas Dichtel wrote: > From: Zijie Pan <zijie.pan@6wind.com> > > 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") > CC: Anjali Singhai Jain <anjali.singhai@intel.com> > CC: Andrew Bowers <andrewx.bowers@intel.com> > Signed-off-by: Zijie Pan <zijie.pan@6wind.com> > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> > --- > drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 21 +++++++++++---------- > 1 file changed, 11 insertions(+), 10 deletions(-) > Thanks for fix. Reviewed-by: Tushar Dave <tushar.n.dave@oracle.com> > diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > index 4d1e670f490e..2d1f3dbe67f1 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > @@ -2115,18 +2115,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); >
> -----Original Message----- > From: Tushar Dave [mailto:tushar.n.dave@oracle.com] > Sent: Tuesday, November 7, 2017 10:20 > To: Nicolas Dichtel <nicolas.dichtel@6wind.com>; Kirsher, Jeffrey T > <jeffrey.t.kirsher@intel.com> > Cc: davem@davemloft.net; netdev@vger.kernel.org; Zijie Pan > <zijie.pan@6wind.com>; Singhai, Anjali <anjali.singhai@intel.com>; Bowers, > AndrewX <andrewx.bowers@intel.com> > Subject: Re: [PATCH net] i40e: fix the calculation of VFs mac addresses > > > > On 11/07/2017 08:32 AM, Nicolas Dichtel wrote: > > From: Zijie Pan <zijie.pan@6wind.com> > > > > 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") > > CC: Anjali Singhai Jain <anjali.singhai@intel.com> > > CC: Andrew Bowers <andrewx.bowers@intel.com> > > Signed-off-by: Zijie Pan <zijie.pan@6wind.com> > > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> > > --- > > drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 21 +++++++++++---------- > > 1 file changed, 11 insertions(+), 10 deletions(-) > > > Thanks for fix. > Reviewed-by: Tushar Dave <tushar.n.dave@oracle.com> Dave, I have picked this up and will have it go through my net-queue tree.
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c index 4d1e670f490e..2d1f3dbe67f1 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -2115,18 +2115,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);