Re: [PATCH 1/3] iio: adc: ti-ads8344: properly byte swap value
From: Alexandre Belloni
Date: Thu Apr 16 2020 - 16:50:29 EST
Hi,
On 16/04/2020 14:22:03+0800, kbuild test robot wrote:
> Hi Alexandre,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on iio/togreg]
> [also build test ERROR on v5.7-rc1 next-20200415]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Alexandre-Belloni/iio-adc-ti-ads8344-improve-the-driver/20200416-073357
> base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
> config: c6x-allyesconfig (attached as .config)
> compiler: c6x-elf-gcc (GCC) 9.3.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=c6x
>
I spent some time to reproduce and this is actually not that trivial
because your toolchains are linked with libisl22 and most distributions
still ship an older version. Maybe you can do something about that?
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
>
> vim +/302 +96 drivers/iio/adc/ti-ads8344.c
>
> 72
> 73 static int ads8344_adc_conversion(struct ads8344 *adc, int channel,
> 74 bool differential)
> 75 {
> 76 struct spi_device *spi = adc->spi;
> 77 int ret;
> 78 u8 buf[3];
> 79
> 80 adc->tx_buf = ADS8344_START;
> 81 if (!differential)
> 82 adc->tx_buf |= ADS8344_SINGLE_END;
> 83 adc->tx_buf |= ADS8344_CHANNEL(channel);
> 84 adc->tx_buf |= ADS8344_CLOCK_INTERNAL;
> 85
> 86 ret = spi_write(spi, &adc->tx_buf, 1);
> 87 if (ret)
> 88 return ret;
> 89
> 90 udelay(9);
> 91
> 92 ret = spi_read(spi, buf, sizeof(buf));
> 93 if (ret)
> 94 return ret;
> 95
> > 96 return buf[0] << 9 | buf[1] << 1 | buf[2] >> 7;
> 97 }
> 98
>
I take it this is a false positive as I don't get any errors when
building this driver with the provided toolchain. However, I see a few
"internal compiler error: in priority, at haifa-sched.c:1599"
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com