[dpdk-dev] [PATCH] drivers/net: fix FW version get

Xing, Beilei beilei.xing at intel.com
Fri Apr 23 04:00:27 CEST 2021



> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit at intel.com>
> Sent: Thursday, April 22, 2021 12:21 AM
> To: Igor Russkikh <igor.russkikh at aquantia.com>; Pavel Belous
> <pavel.belous at aquantia.com>; Somalapuram Amaranath
> <asomalap at amd.com>; Ajit Khaparde <ajit.khaparde at broadcom.com>;
> Somnath Kotur <somnath.kotur at broadcom.com>; Hemant Agrawal
> <hemant.agrawal at nxp.com>; Sachin Saxena <sachin.saxena at oss.nxp.com>;
> Guo, Jia <jia.guo at intel.com>; Wang, Haiyue <haiyue.wang at intel.com>;
> Daley, John <johndale at cisco.com>; Hyong Youb Kim <hyonkim at cisco.com>;
> Min Hu (Connor) <humin29 at huawei.com>; Yisen Zhuang
> <yisen.zhuang at huawei.com>; Lijun Ou <oulijun at huawei.com>; Xing, Beilei
> <beilei.xing at intel.com>; Yang, Qiming <qiming.yang at intel.com>; Zhang, Qi Z
> <qi.z.zhang at intel.com>; Andrew Boyer <aboyer at pensando.io>; Jerin Jacob
> <jerinj at marvell.com>; Nithin Dabilpuram <ndabilpuram at marvell.com>;
> Kiran Kumar K <kirankumark at marvell.com>; Rasesh Mody
> <rmody at marvell.com>; Devendra Singh Rawat <dsinghrawat at marvell.com>;
> Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>; Jiawen Wu
> <jiawenwu at trustnetic.com>; Jian Wang <jianwang at trustnetic.com>;
> Thomas Monjalon <thomas at monjalon.net>; Selwin Sebastian
> <selwin.sebastian at amd.com>; Remy Horton <remy.horton at intel.com>;
> Chunsong Feng <fengchunsong at huawei.com>; Huisong Li
> <lihuisong at huawei.com>; Hao Chen <chenhao164 at huawei.com>; Wei Hu
> (Xavier) <xavier.huwei at huawei.com>; Wu, Jingjing <jingjing.wu at intel.com>;
> Lu, Wenzhuo <wenzhuo.lu at intel.com>; Li, Xiaoyun <xiaoyun.li at intel.com>;
> Zhang, AlvinX <alvinx.zhang at intel.com>; Shannon Nelson
> <snelson at pensando.io>; Alfredo Cardigliano <cardigliano at ntop.org>;
> Vamsi Attunuru <vattunuru at marvell.com>; Yash Sharma
> <ysharma at marvell.com>; Ivan Malov <ivan.malov at oktetlabs.ru>; Andrew
> Lee <alee at solarflare.com>
> Cc: Yigit, Ferruh <ferruh.yigit at intel.com>; dev at dpdk.org; stable at dpdk.org
> Subject: [PATCH] drivers/net: fix FW version get
> 
> Fixes a few different things:
> * Remove 'fw_version' NULL checks, it is allowed if the 'fw_size' is
>   zero, 'fw_version' being NULL but 'fw_size' not zero condition checked
>   in ethdev layer
> * Be sure required buffer size is returned if provided one is not big
>   enough, instead of returning success (0)
> * Document in doxygen comment the '-EINVAL' is a valid return type
> * Take into account that 'snprintf' can return negative value
> * Cast length to 'size_t' to compare it with 'fw_size'
> 
> Fixes: bb42aa9ffe4e ("net/atlantic: configure device start/stop")
> Fixes: ff70acdf4299 ("net/axgbe: support reading FW version")
> Fixes: e2652b0a20a0 ("net/bnxt: support get FW version")
> Fixes: cf0fab1d2ca5 ("net/dpaa: support firmware version get API")
> Fixes: 748eccb97cdc ("net/dpaa2: add support for firmware version get")
> Fixes: b883c0644a24 ("net/e1000: add firmware version get")
> Fixes: 293430677e9c ("net/enic: add handler to return firmware version")
> Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")
> Fixes: bd5b86732bc7 ("net/hns3: modify format for firmware version")
> Fixes: ed0dfdd0e976 ("net/i40e: add firmware version get")
> Fixes: e31cb9a36298 ("net/ice: support FW version getting")
> Fixes: 4f09bc55ac3d ("net/igc: implement device base operations")
> Fixes: eec10fb0ce6b ("net/ionic: support FW version")
> Fixes: 8b0b56574269 ("net/ixgbe: add firmware version get")
> Fixes: 4d9f5b8adc02 ("net/octeontx2: add FW version get operation")
> Fixes: f97b56f9f12e ("net/qede: support FW version query")
> Fixes: 83fef46a22b2 ("net/sfc: add callback to retrieve FW version")
> Fixes: bc84ac0fadef ("net/txgbe: support getting FW version")
> Fixes: 21913471202f ("ethdev: add firmware version get")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---

<...>

> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index e6206a7e5100..66d23d698ea0 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3687,9 +3687,11 @@ i40e_fw_version_get(struct rte_eth_dev *dev,
> char *fw_version, size_t fw_size)
>  		 ((hw->nvm.version >> 4) & 0xff),
>  		 (hw->nvm.version & 0xf), hw->nvm.eetrack,
>  		 ver, build, patch);
> +	if (ret < 0)
> +		return -EINVAL;
> 
>  	ret += 1; /* add the size of '\0' */
> -	if (fw_size < (u32)ret)
> +	if (fw_size < (size_t)ret)
>  		return ret;
>  	else
>  		return 0;

For i40e,
Acked-by: Beilei Xing <beilei.xing at intel.com>


More information about the dev mailing list