Re: [jic23-iio:testing 23/47] drivers/iio/dac/adi-axi-dac.c:731 axi_dac_bus_set_io_mode() warn: always true condition '(mode >= 0) => (0-u32max >= 0)'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 4 Feb 2025 09:43:17 +0100
Angelo Dureghello <adureghello@xxxxxxxxxxxx> wrote:

> Hi Jonathan,
> 
> On 04.02.2025 07:23, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
> > head:   315198c0a370da031f5c3d504b99f771a0c545ab
> > commit: 493122c53af1915b4b5b5f47a8c446973ebff052 [23/47] iio: dac: adi-axi-dac: add bus mode setup
> > config: m68k-randconfig-r071-20250204 (https://download.01.org/0day-ci/archive/20250204/202502040758.DJqHqhLO-lkp@xxxxxxxxx/config)
> > compiler: m68k-linux-gcc (GCC) 14.2.0
> > 
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202502040758.DJqHqhLO-lkp@xxxxxxxxx/
> > 
> > smatch warnings:
> > drivers/iio/dac/adi-axi-dac.c:731 axi_dac_bus_set_io_mode() warn: always true condition '(mode >= 0) => (0-u32max >= 0)'
> > 
> > vim +731 drivers/iio/dac/adi-axi-dac.c
> > 
> >    724	
> >    725	static int axi_dac_bus_set_io_mode(struct iio_backend *back,
> >    726					   enum ad3552r_io_mode mode)
> >    727	{
> >    728		struct axi_dac_state *st = iio_backend_get_priv(back);
> >    729		int ival, ret;
> >    730	  
> >  > 731		if (!(mode >= AD3552R_IO_MODE_SPI && mode <= AD3552R_IO_MODE_QSPI))  
> >    732  
> 
> not clear to me the reason of this warning, maybe because mode is an enum ?
> Should i take any action ?

Currently there are only a few modes in there and that range covers them all I think.
So warning is correct, but we perhaps want this check there as hardening against future
addition of more modes.  Maybe an explicit switch with all modes listed and a default
will have same effect and be better defense anyway against future changes?

Jonathan


> 
> 			return -EINVAL;
> >    733	
> >    734		guard(mutex)(&st->lock);
> >    735	
> >    736		ret = regmap_update_bits(st->regmap, AXI_DAC_CUSTOM_CTRL_REG,
> >    737				AXI_DAC_CUSTOM_CTRL_MULTI_IO_MODE,
> >    738				FIELD_PREP(AXI_DAC_CUSTOM_CTRL_MULTI_IO_MODE, mode));
> >    739		if (ret)
> >    740			return ret;
> >    741	
> >    742		return regmap_read_poll_timeout(st->regmap, AXI_DAC_UI_STATUS_REG, ival,
> >    743				FIELD_GET(AXI_DAC_UI_STATUS_IF_BUSY, ival) == 0, 10,
> >    744				100 * KILO);
> >    745	}
> >    746	
> > 
> > -- 
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki  
> 
> Thanks,
> regards,
> angelo





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux