lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YyyCJX374uWYrPTN@gmail.com>
Date:   Thu, 22 Sep 2022 17:41:25 +0200
From:   Marcus Folkesson <marcus.folkesson@...il.com>
To:     Jonathan Cameron <Jonathan.Cameron@...wei.com>
Cc:     kernel test robot <lkp@...el.com>, llvm@...ts.linux.dev,
        kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Andy Shevchenko <andy.shevchenko@...il.com>
Subject: Re: [jic23-iio:testing 58/58] drivers/iio/adc/mcp3911.c:274:6:
 warning: variable 'tmp0' set but not used

On Thu, Sep 22, 2022 at 11:59:25AM +0100, Jonathan Cameron wrote:
> On Thu, 22 Sep 2022 08:50:17 +0800
> kernel test robot <lkp@...el.com> wrote:
> 
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
> > head:   d4e1a549566b9ea8b96e80f0cdcbe99714ac256e
> > commit: d4e1a549566b9ea8b96e80f0cdcbe99714ac256e [58/58] iio: adc: mcp3911: add support to set PGA
> > config: x86_64-randconfig-a012
> > compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
> > reproduce (this is a W=1 build):
> >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         # https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?id=d4e1a549566b9ea8b96e80f0cdcbe99714ac256e
> >         git remote add jic23-iio https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
> >         git fetch --no-tags jic23-iio testing
> >         git checkout d4e1a549566b9ea8b96e80f0cdcbe99714ac256e
> >         # save the config file
> >         mkdir build_dir && cp config build_dir/.config
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/iio/adc/
> > 
> > If you fix the issue, kindly add following tag where applicable
> > | Reported-by: kernel test robot <lkp@...el.com>
> > 
> > All warnings (new ones prefixed by >>):
> > 
> > >> drivers/iio/adc/mcp3911.c:274:6: warning: variable 'tmp0' set but not used [-Wunused-but-set-variable]  
> >            int tmp0, tmp1;
> >                ^
> >    1 warning generated.
> > 
> > 
> > vim +/tmp0 +274 drivers/iio/adc/mcp3911.c
> > 
> >    268	
> >    269	static int mcp3911_calc_scale_table(struct mcp3911 *adc)
> >    270	{
> >    271		u32 ref = MCP3911_INT_VREF_MV;
> >    272		u32 div;
> >    273		int ret;
> >  > 274		int tmp0, tmp1;  
> >    275		s64 tmp2;
> >    276	
> >    277		if (adc->vref) {
> >    278			ret = regulator_get_voltage(adc->vref);
> >    279			if (ret < 0) {
> >    280				dev_err(&adc->spi->dev,
> >    281					"failed to get vref voltage: %d\n",
> >    282				       ret);
> >    283				return ret;
> >    284			}
> >    285	
> >    286			ref = ret / 1000;
> >    287		}
> >    288	
> >    289		/*
> >    290		 * For 24-bit Conversion
> >    291		 * Raw = ((Voltage)/(Vref) * 2^23 * Gain * 1.5
> >    292		 * Voltage = Raw * (Vref)/(2^23 * Gain * 1.5)
> >    293		 *
> >    294		 * ref = Reference voltage
> >    295		 * div = (2^23 * 1.5 * gain) = 12582912 * gain
> >    296		 */
> >    297		for (int i = 0; i < MCP3911_NUM_SCALES; i++) {
> >    298			div = 12582912 * BIT(i);
> >    299			tmp2 = div_s64((s64)ref * 1000000000LL, div);
> >    300			tmp1 = div;
> >    301			tmp0 = (int)div_s64_rem(tmp2, 1000000000, &tmp1);
> 
> Marcus, 
> I'm guessing the intent here is just to get the remainder.  
> Hence fix is probably just to drop tmp0?
> 
> If you confirm that I'll tweak the commit to do that.
> 
> Jonathan


Hum, Yes. I actually think we can drop div, tmp0, tmp1 and tmp2.
I think they are remnats for when I did the calculation differently.

Do you want me to update the patchset?

 static int mcp3911_calc_scale_table(struct mcp3911 *adc)
 {
        u32 ref = MCP3911_INT_VREF_MV;
-       u32 div;
        int ret;
-       int tmp0, tmp1;
-       s64 tmp2;


....



        for (int i = 0; i < MCP3911_NUM_SCALES; i++) {
-               div = 12582912 * BIT(i);
-               tmp2 = div_s64((s64)ref * 1000000000LL, div);
-               tmp1 = div;
-               tmp0 = (int)div_s64_rem(tmp2, 1000000000, &tmp1);
-
                mcp3911_scale_table[i][0] = 0;
-               mcp3911_scale_table[i][1] = tmp1;
+               mcp3911_scale_table[i][1] = 12582912 * BIT(i);
        }


/Marcus

> 
> 
> >    302	
> >    303			mcp3911_scale_table[i][0] = 0;
> >    304			mcp3911_scale_table[i][1] = tmp1;
> >    305		}
> >    306	
> >    307		return 0;
> >    308	}
> >    309	
> > 
> 

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ