CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: "Lars-Peter Clausen" <lars(a)metafoo.de>
CC: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab2afa23bd197df47819a87f0265c0ac95c5b6a
commit: 907b2ad8c9acad39ac1f0ccdbbe66c63856055e3 iio: at91-sama5d2: Fix incorrect cast to
platform_device
date: 6 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 6 months ago
config: nios2-randconfig-m031-20220530
(
https://download.01.org/0day-ci/archive/20220531/202205310925.zz2dEYBK-lk...)
compiler: nios2-linux-gcc (GCC) 11.3.0
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/iio/adc/at91-sama5d2_adc.c:1781 at91_adc_set_watermark() warn:
'st->dma_st.rx_buf' double freed
Old smatch warnings:
drivers/iio/adc/at91-sama5d2_adc.c:2160 at91_adc_resume() warn: ignoring unreachable
code.
vim +1781 drivers/iio/adc/at91-sama5d2_adc.c
073c662017f2f3 Eugen Hristev 2017-11-15 1747
073c662017f2f3 Eugen Hristev 2017-11-15 1748 static int
at91_adc_set_watermark(struct iio_dev *indio_dev, unsigned int val)
073c662017f2f3 Eugen Hristev 2017-11-15 1749 {
073c662017f2f3 Eugen Hristev 2017-11-15 1750 struct at91_adc_state *st =
iio_priv(indio_dev);
1a198794451449 Eugen Hristev 2020-09-23 1751 int ret;
073c662017f2f3 Eugen Hristev 2017-11-15 1752
073c662017f2f3 Eugen Hristev 2017-11-15 1753 if (val > AT91_HWFIFO_MAX_SIZE)
073c662017f2f3 Eugen Hristev 2017-11-15 1754 return -EINVAL;
073c662017f2f3 Eugen Hristev 2017-11-15 1755
073c662017f2f3 Eugen Hristev 2017-11-15 1756 if
(!st->selected_trig->hw_trig) {
073c662017f2f3 Eugen Hristev 2017-11-15 1757 dev_dbg(&indio_dev->dev,
"we need hw trigger for DMA\n");
073c662017f2f3 Eugen Hristev 2017-11-15 1758 return 0;
073c662017f2f3 Eugen Hristev 2017-11-15 1759 }
073c662017f2f3 Eugen Hristev 2017-11-15 1760
073c662017f2f3 Eugen Hristev 2017-11-15 1761 dev_dbg(&indio_dev->dev,
"new watermark is %u\n", val);
073c662017f2f3 Eugen Hristev 2017-11-15 1762 st->dma_st.watermark = val;
073c662017f2f3 Eugen Hristev 2017-11-15 1763
073c662017f2f3 Eugen Hristev 2017-11-15 1764 /*
073c662017f2f3 Eugen Hristev 2017-11-15 1765 * The logic here is: if we have
watermark 1, it means we do
073c662017f2f3 Eugen Hristev 2017-11-15 1766 * each conversion with it's own
IRQ, thus we don't need DMA.
073c662017f2f3 Eugen Hristev 2017-11-15 1767 * If the watermark is higher, we do
DMA to do all the transfers in bulk
073c662017f2f3 Eugen Hristev 2017-11-15 1768 */
073c662017f2f3 Eugen Hristev 2017-11-15 1769
073c662017f2f3 Eugen Hristev 2017-11-15 1770 if (val == 1)
907b2ad8c9acad Lars-Peter Clausen 2021-10-19 1771 at91_adc_dma_disable(st);
073c662017f2f3 Eugen Hristev 2017-11-15 1772 else if (val > 1)
907b2ad8c9acad Lars-Peter Clausen 2021-10-19 1773 at91_adc_dma_init(st);
073c662017f2f3 Eugen Hristev 2017-11-15 1774
1a198794451449 Eugen Hristev 2020-09-23 1775 /*
1a198794451449 Eugen Hristev 2020-09-23 1776 * We can start the DMA only after
setting the watermark and
1a198794451449 Eugen Hristev 2020-09-23 1777 * having the DMA initialization
completed
1a198794451449 Eugen Hristev 2020-09-23 1778 */
1a198794451449 Eugen Hristev 2020-09-23 1779 ret =
at91_adc_buffer_prepare(indio_dev);
1a198794451449 Eugen Hristev 2020-09-23 1780 if (ret)
907b2ad8c9acad Lars-Peter Clausen 2021-10-19 @1781 at91_adc_dma_disable(st);
1a198794451449 Eugen Hristev 2020-09-23 1782
1a198794451449 Eugen Hristev 2020-09-23 1783 return ret;
073c662017f2f3 Eugen Hristev 2017-11-15 1784 }
073c662017f2f3 Eugen Hristev 2017-11-15 1785
--
0-DAY CI Kernel Test Service
https://01.org/lkp