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]
Date:   Mon, 3 Apr 2017 11:52:27 +0530
From:   Vignesh R <vigneshr@...com>
To:     Mark Brown <broonie@...nel.org>
CC:     "linux-spi@...r.kernel.org" <linux-spi@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-omap@...r.kernel.org" <linux-omap@...r.kernel.org>
Subject: Re: [PATCH 2/2] spi: spi-ti-qspi: Use bounce buffer if read buffer is
 not DMA'ble



On Monday 03 April 2017 05:03 AM, kbuild test robot wrote:
> Hi Vignesh,
> 
> [auto build test WARNING on spi/for-next]
> [also build test WARNING on v4.11-rc4 next-20170331]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Vignesh-R/spi-ti-qspi-Handle-vmalloc-d-buffers/20170403-030332
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
> config: x86_64-allmodconfig (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=x86_64 
> 
> All warnings (new ones prefixed by >>):

Thanks for the report. I will fix below warnings in the next version.

> 
>    include/linux/compiler.h:264:8: sparse: attribute 'no_sanitize_address': unknown attribute
>    drivers/spi/spi-ti-qspi.c:449:35: sparse: incompatible types in comparison expression (different type sizes)
>    drivers/spi/spi-ti-qspi.c: In function 'ti_qspi_dma_bounce_buffer':
>>> drivers/spi/spi-ti-qspi.c:440:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>      unsigned int to = (unsigned int)msg->buf;
>                        ^
>    In file included from drivers/spi/spi-ti-qspi.c:16:0:
>    include/linux/kernel.h:755:16: warning: comparison of distinct pointer types lacks a cast
>      (void) (&min1 == &min2);   \
>                    ^
>    include/linux/kernel.h:758:2: note: in expansion of macro '__min'
>      __min(typeof(x), typeof(y),   \
>      ^~~~~
>>> drivers/spi/spi-ti-qspi.c:449:21: note: in expansion of macro 'min'
>       size_t xfer_len = min(QSPI_DMA_BUFFER_SIZE, readsize);
>                         ^~~
>>> drivers/spi/spi-ti-qspi.c:455:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>       memcpy((void *)to, qspi->rx_bb_addr, xfer_len);
>              ^
> 
> sparse warnings: (new ones prefixed by >>)
> 
>    include/linux/compiler.h:264:8: sparse: attribute 'no_sanitize_address': unknown attribute
>>> drivers/spi/spi-ti-qspi.c:449:35: sparse: incompatible types in comparison expression (different type sizes)
>    drivers/spi/spi-ti-qspi.c: In function 'ti_qspi_dma_bounce_buffer':
>    drivers/spi/spi-ti-qspi.c:440:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>      unsigned int to = (unsigned int)msg->buf;
>                        ^
>    In file included from drivers/spi/spi-ti-qspi.c:16:0:
>    include/linux/kernel.h:755:16: warning: comparison of distinct pointer types lacks a cast
>      (void) (&min1 == &min2);   \
>                    ^
>    include/linux/kernel.h:758:2: note: in expansion of macro '__min'
>      __min(typeof(x), typeof(y),   \
>      ^~~~~
>    drivers/spi/spi-ti-qspi.c:449:21: note: in expansion of macro 'min'
>       size_t xfer_len = min(QSPI_DMA_BUFFER_SIZE, readsize);
>                         ^~~
>    drivers/spi/spi-ti-qspi.c:455:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>       memcpy((void *)to, qspi->rx_bb_addr, xfer_len);
>              ^
> 
> vim +440 drivers/spi/spi-ti-qspi.c
> 
>    434	}
>    435	
>    436	static int ti_qspi_dma_bounce_buffer(struct ti_qspi *qspi,
>    437					     struct spi_flash_read_message *msg)
>    438	{
>    439		size_t readsize = msg->len;
>  > 440		unsigned int to = (unsigned int)msg->buf;
>    441		dma_addr_t dma_src = qspi->mmap_phys_base + msg->from;
>    442		int ret = 0;
>    443	
>    444		/*
>    445		 * Use bounce buffer as FS like jffs2, ubifs may pass
>    446		 * buffers that does not belong to kernel lowmem region.
>    447		 */
>    448		while (readsize != 0) {
>  > 449			size_t xfer_len = min(QSPI_DMA_BUFFER_SIZE, readsize);
>    450	
>    451			ret = ti_qspi_dma_xfer(qspi, qspi->rx_bb_dma_addr,
>    452					       dma_src, xfer_len);
>    453			if (ret != 0)
>    454				return ret;
>  > 455			memcpy((void *)to, qspi->rx_bb_addr, xfer_len);
>    456			readsize -= xfer_len;
>    457			dma_src += xfer_len;
>    458			to += xfer_len;
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 

-- 
Regards
Vignesh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ