Hi, > -----Original Message----- > From: David C Harton [mailto:dhar...@cisco.com] > Sent: Thursday, January 11, 2018 11:14 PM > To: Wu, Jingjing <jingjing...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > Cc: dev@dpdk.org; David C Harton <dhar...@cisco.com>; Zhao1, Wei > <wei.zh...@intel.com> > Subject: [PATCH v3] net/i40e: fix VF reset stats crash > > Calling i40evf_dev_xstats_reset can sometimes crash. > > Fixed issue by checking return code before using pstats. > > Fixes: 8210e9e0d805e ("net/i40e: fix clear xstats bug in VF") > Cc: wei.zh...@intel.com > > Signed-off-by: David C Harton <dhar...@cisco.com> > --- > > v2: > * Fixed fixes line in commit message. > > v3: > * Modified conditional to check ret code instead of pointer. > > > drivers/net/i40e/i40e_ethdev_vf.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > b/drivers/net/i40e/i40e_ethdev_vf.c > index b96d77a..d5a9edb 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -916,14 +916,16 @@ i40evf_update_stats(struct i40e_vsi *vsi, static > void i40evf_dev_xstats_reset(struct rte_eth_dev *dev) { > + int ret; > struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data- > >dev_private); > struct i40e_eth_stats *pstats = NULL; > > /* read stat values to clear hardware registers */ > - i40evf_query_stats(dev, &pstats); > + ret = i40evf_query_stats(dev, &pstats); > > /* set stats offset base on current values */ > - vf->vsi.eth_stats_offset = *pstats; > + if (ret == 0) > + vf->vsi.eth_stats_offset = *pstats; > } > > static int i40evf_dev_xstats_get_names(__rte_unused struct rte_eth_dev > *dev, > -- > 2.10.3.dirty
Acked-by: Wei Zhao <wei.zh...@intel.com>