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] [day] [month] [year] [list]
Message-ID: <201909170031.XhGhg4Z3%lkp@intel.com>
Date:   Tue, 17 Sep 2019 00:14:00 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Piotr Sroka <piotrs@...ence.com>
Cc:     kbuild-all@...org, Kazuhiro Kasai <kasai.kazuhiro@...ionext.com>,
        Piotr Sroka <piotrs@...ence.com>,
        Miquel Raynal <miquel.raynal@...tlin.com>,
        Richard Weinberger <richard@....at>,
        David Woodhouse <dwmw2@...radead.org>,
        Brian Norris <computersforpeace@...il.com>,
        Marek Vasut <marek.vasut@...il.com>,
        Vignesh Raghavendra <vigneshr@...com>,
        Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
        "David S. Miller" <davem@...emloft.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Linus Walleij <linus.walleij@...aro.org>,
        Nicolas Ferre <nicolas.ferre@...rochip.com>,
        "Paul E. McKenney" <paulmck@...ux.ibm.com>,
        Boris Brezillon <boris.brezillon@...labora.com>,
        Thomas Gleixner <tglx@...utronix.de>,
        Paul Cercueil <paul@...pouillou.net>,
        Arnd Bergmann <arnd@...db.de>,
        Marcel Ziswiler <marcel.ziswiler@...adex.com>,
        Liang Yang <liang.yang@...ogic.com>,
        Anders Roxell <anders.roxell@...aro.org>,
        linux-kernel@...r.kernel.org, linux-mtd@...ts.infradead.org
Subject: Re: [v6 1/2] mtd: rawnand: Add new Cadence NAND driver to MTD
 subsystem

Hi Piotr,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3 next-20190915]
[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/Piotr-Sroka/mtd-rawnand-Add-Cadence-NAND-controller-driver/20190916-205004
config: parisc-allyesconfig (attached as .config)
compiler: hppa-linux-gcc (GCC) 7.4.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
        GCC_VERSION=7.4.0 make.cross ARCH=parisc 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   drivers/mtd/nand/raw/cadence-nand-controller.c: In function 'cadence_nand_read_buf':
>> drivers/mtd/nand/raw/cadence-nand-controller.c:1877:3: error: implicit declaration of function 'readsl'; did you mean 'readl'? [-Werror=implicit-function-declaration]
      readsl(cdns_ctrl->io.virt, buf, len_in_words);
      ^~~~~~
      readl
   drivers/mtd/nand/raw/cadence-nand-controller.c: In function 'cadence_nand_write_buf':
>> drivers/mtd/nand/raw/cadence-nand-controller.c:1930:3: error: implicit declaration of function 'writesl'; did you mean 'writel'? [-Werror=implicit-function-declaration]
      writesl(cdns_ctrl->io.virt, buf, len_in_words);
      ^~~~~~~
      writel
   cc1: some warnings being treated as errors

vim +1877 drivers/mtd/nand/raw/cadence-nand-controller.c

  1860	
  1861	static int cadence_nand_read_buf(struct cdns_nand_ctrl *cdns_ctrl,
  1862					 u8 *buf, int len)
  1863	{
  1864		u8 thread_nr = 0;
  1865		u32 sdma_size;
  1866		int status;
  1867	
  1868		/* Wait until slave DMA interface is ready to data transfer. */
  1869		status = cadence_nand_wait_on_sdma(cdns_ctrl, &thread_nr, &sdma_size);
  1870		if (status)
  1871			return status;
  1872	
  1873		if (!cdns_ctrl->caps1->has_dma) {
  1874			int len_in_words = len >> 2;
  1875	
  1876			/* read alingment data */
> 1877			readsl(cdns_ctrl->io.virt, buf, len_in_words);
  1878			if (sdma_size > len) {
  1879				/* read rest data from slave DMA interface if any */
  1880				readsl(cdns_ctrl->io.virt, cdns_ctrl->buf,
  1881				       sdma_size / 4 - len_in_words);
  1882				/* copy rest of data */
  1883				memcpy(buf + (len_in_words << 2), cdns_ctrl->buf,
  1884				       len - (len_in_words << 2));
  1885			}
  1886			return 0;
  1887		}
  1888	
  1889		if (cdns_ctrl->dmac && cadence_nand_dma_buf_ok(cdns_ctrl, buf, len)) {
  1890			status = cadence_nand_slave_dma_transfer(cdns_ctrl, buf,
  1891								 cdns_ctrl->io.dma,
  1892								 len, DMA_FROM_DEVICE);
  1893			if (status == 0)
  1894				return 0;
  1895	
  1896			dev_warn(cdns_ctrl->dev,
  1897				 "Slave DMA transfer failed. Try again using bounce buffer.");
  1898		}
  1899	
  1900		/* If DMA transfer is not possible or failed then use bounce buffer. */
  1901		status = cadence_nand_slave_dma_transfer(cdns_ctrl, cdns_ctrl->buf,
  1902							 cdns_ctrl->io.dma,
  1903							 sdma_size, DMA_FROM_DEVICE);
  1904	
  1905		if (status) {
  1906			dev_err(cdns_ctrl->dev, "Slave DMA transfer failed");
  1907			return status;
  1908		}
  1909	
  1910		memcpy(buf, cdns_ctrl->buf, len);
  1911	
  1912		return 0;
  1913	}
  1914	
  1915	static int cadence_nand_write_buf(struct cdns_nand_ctrl *cdns_ctrl,
  1916					  const u8 *buf, int len)
  1917	{
  1918		u8 thread_nr = 0;
  1919		u32 sdma_size;
  1920		int status;
  1921	
  1922		/* Wait until slave DMA interface is ready to data transfer. */
  1923		status = cadence_nand_wait_on_sdma(cdns_ctrl, &thread_nr, &sdma_size);
  1924		if (status)
  1925			return status;
  1926	
  1927		if (!cdns_ctrl->caps1->has_dma) {
  1928			int len_in_words = len >> 2;
  1929	
> 1930			writesl(cdns_ctrl->io.virt, buf, len_in_words);
  1931			if (sdma_size > len) {
  1932				/* copy rest of data */
  1933				memcpy(cdns_ctrl->buf, buf + (len_in_words << 2),
  1934				       len - (len_in_words << 2));
  1935				/* write all expected by nand controller data */
  1936				writesl(cdns_ctrl->io.virt, cdns_ctrl->buf,
  1937					sdma_size / 4 - len_in_words);
  1938			}
  1939	
  1940			return 0;
  1941		}
  1942	
  1943		if (cdns_ctrl->dmac && cadence_nand_dma_buf_ok(cdns_ctrl, buf, len)) {
  1944			status = cadence_nand_slave_dma_transfer(cdns_ctrl, (void *)buf,
  1945								 cdns_ctrl->io.dma,
  1946								 len, DMA_TO_DEVICE);
  1947			if (status == 0)
  1948				return 0;
  1949	
  1950			dev_warn(cdns_ctrl->dev,
  1951				 "Slave DMA transfer failed. Try again using bounce buffer.");
  1952		}
  1953	
  1954		/* If DMA transfer is not possible or failed then use bounce buffer. */
  1955		memcpy(cdns_ctrl->buf, buf, len);
  1956	
  1957		status = cadence_nand_slave_dma_transfer(cdns_ctrl, cdns_ctrl->buf,
  1958							 cdns_ctrl->io.dma,
  1959							 sdma_size, DMA_TO_DEVICE);
  1960	
  1961		if (status)
  1962			dev_err(cdns_ctrl->dev, "Slave DMA transfer failed");
  1963	
  1964		return status;
  1965	}
  1966	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (58176 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ