[PATCH] net/ice: fix wrong DDP search path

Zeng, ZhichaoX zhichaox.zeng at intel.com
Mon Nov 4 10:57:27 CET 2024


Hi Bruce,

Thanks for your suggestions, will send v2 patch.

Regards
Zhichao

> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson at intel.com>
> Sent: Friday, November 1, 2024 5:36 PM
> To: Zeng, ZhichaoX <zhichaox.zeng at intel.com>
> Cc: dev at dpdk.org; Burakov, Anatoly <anatoly.burakov at intel.com>
> Subject: Re: [PATCH] net/ice: fix wrong DDP search path
> 
> On Fri, Nov 01, 2024 at 04:44:43PM +0800, Zhichao Zeng wrote:
> > In the previous implementation, when the user did not enter any value
> > in "/sys/module/firmware_class/parameters/path", it would incorrectly
> > search for DDP packages under "/". This commit fixes this issue.
> >
> > Fixes: 9207f93640a7 ("net/ice: support custom search path for DDP
> > package")
> >
> > Signed-off-by: Zhichao Zeng <zhichaox.zeng at intel.com>
> > ---
> >  drivers/net/ice/ice_ethdev.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ice/ice_ethdev.c
> > b/drivers/net/ice/ice_ethdev.c index d5e94a6685..0705f8e961 100644
> > --- a/drivers/net/ice/ice_ethdev.c
> > +++ b/drivers/net/ice/ice_ethdev.c
> > @@ -1922,8 +1922,11 @@ static int ice_read_customized_path(char
> *pkg_file, uint16_t buff_len)
> >  		return -EIO;
> >  	}
> >
> > -	if (pkg_file[n - 1] == '\n')
> > +	if (pkg_file[n - 1] == '\n') {
> >  		n--;
> > +		if (n == 0)
> > +			return -EINVAL;
> > +	}
> >
> >  	pkg_file[n] = '\0';
> >
> 
> May I suggest a slightly alternative fix, that I think it a little shorter and neater
> (assuming it works - if not, let me know.)
> 
> Rather than adding an explicit check for n==0 and returning error, I think we
> can instead change the return value of the function to be the length of the
> data read. So at line 1931 "return 0" we can change that to "return n".
> Then at the call site for the function we can change:
> 
> 	if (ice_read_customized_path(....) == 0) {
> 
> to
> 	if (ice_read_customized_path(....) > 0) {
> 
> What do you think?
> 
> /Bruce
> 
> PS: if you do take this approach, we can also slightly shorten the function by
> changing/removing the block:
> 
> 	if (n == 0) {
> 		close(fp);
> 		return -EIO;
> 	}
> 	... /* length adjust and zeroing */
> 	return n;
> 
> to be an inverted check with the length adjustment and zeroing inside it:
> 	if (n > 0){
> 		if (pkg_file[n -1] == '\n')
> 			n--;
> 		pkg_file[n] = '\0';
> 	}
> 	close(fp);
> 	return n;
> 
> That gives us a zero return value too in case of reading zero bytes. It also
> handles the currently unhandled case of read returning < 0.


More information about the dev mailing list