[dpdk-dev] [PATCH v3] net/i40e: fix VF reset stats crash

Zhao1, Wei wei.zhao1 at intel.com
Fri Jan 12 03:01:38 CET 2018


Hi,

> -----Original Message-----
> From: David C Harton [mailto:dharton at cisco.com]
> Sent: Thursday, January 11, 2018 11:14 PM
> To: Wu, Jingjing <jingjing.wu at intel.com>; Xing, Beilei <beilei.xing at intel.com>
> Cc: dev at dpdk.org; David C Harton <dharton at cisco.com>; Zhao1, Wei
> <wei.zhao1 at 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.zhao1 at intel.com
> 
> Signed-off-by: David C Harton <dharton at 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.zhao1 at intel.com>



More information about the dev mailing list