Hi Piotr,

Can you fix the below issue reported by Julia? Either convert the
structure parameter to a signed parameter or use an intermediate
variable.

Thanks,
Miquèl

Julia Lawall <julia.law...@lip6.fr> wrote on Wed, 18 Sep 2019 21:04:37
+0200 (CEST):

> ---------- Forwarded message ----------
> Date: Wed, 18 Sep 2019 23:17:29 +0800
> From: kbuild test robot <l...@intel.com>
> To: kbu...@01.org
> Cc: Julia Lawall <julia.law...@lip6.fr>
> Subject: Re: [v7 1/2] mtd: rawnand: Add new Cadence NAND driver to MTD 
> subsystem
> 
> CC: kbuild-...@01.org
> In-Reply-To: <20190918123115.30510-1-pio...@cadence.com>
> References: <20190918123115.30510-1-pio...@cadence.com>
> TO: Piotr Sroka <pio...@cadence.com>
> CC: Kazuhiro Kasai <kasai.kazuh...@socionext.com>, Piotr Sroka 
> <pio...@cadence.com>, Miquel Raynal <miquel.ray...@bootlin.com>, Richard 
> Weinberger <rich...@nod.at>, David Woodhouse <dw...@infradead.org>, Brian 
> Norris <computersforpe...@gmail.com>, Marek Vasut <marek.va...@gmail.com>, 
> Vignesh Raghavendra <vigne...@ti.com>, Mauro Carvalho Chehab 
> <mchehab+sams...@kernel.org>, "David S. Miller" <da...@davemloft.net>, Greg 
> Kroah-Hartman <gre...@linuxfoundation.org>, Linus Walleij 
> <linus.wall...@linaro.org>, Nicolas Ferre <nicolas.fe...@microchip.com>, 
> "Paul E. McKenney" <paul...@linux.ibm.com>, Boris Brezillon 
> <boris.brezil...@collabora.com>, Thomas Gleixner <t...@linutronix.de>, Paul 
> Cercueil <p...@crapouillou.net>, Arnd Bergmann <a...@arndb.de>, Marcel 
> Ziswiler <marcel.ziswi...@toradex.com>, Liang Yang <liang.y...@amlogic.com>, 
> Anders Roxell <anders.rox...@linaro.org>, linux-kernel@vger.kernel.org, 
> linux-...@lists.infradead.org
> 
> Hi Piotr,
> 
> I love your patch! Perhaps something to improve:
> 
> [auto build test WARNING on linus/master]
> [cannot apply to v5.3 next-20190917]
> [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-new-Cadence-NAND-driver-to-MTD-subsystem/20190918-204505
> :::::: branch date: 3 hours ago
> :::::: commit date: 3 hours ago
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <l...@intel.com>
> Reported-by: Julia Lawall <julia.law...@lip6.fr>
> 
> >> drivers/mtd/nand/raw/cadence-nand-controller.c:2644:5-28: WARNING: 
> >> Unsigned expression compared with zero: cdns_chip -> corr_str_idx < 0  
> 
> # 
> https://github.com/0day-ci/linux/commit/3235ae79d58b8d95b44d5d3773f59065f04d4f00
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout 3235ae79d58b8d95b44d5d3773f59065f04d4f00
> vim +2644 drivers/mtd/nand/raw/cadence-nand-controller.c
> 
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2584
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2585  int 
> cadence_nand_attach_chip(struct nand_chip *chip)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2586  {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2587   struct cdns_nand_ctrl 
> *cdns_ctrl = to_cdns_nand_ctrl(chip->controller);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2588   struct cdns_nand_chip 
> *cdns_chip = to_cdns_nand_chip(chip);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2589   u32 ecc_size = 
> cdns_chip->sector_count * chip->ecc.bytes;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2590   struct mtd_info *mtd = 
> nand_to_mtd(chip);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2591   u32 max_oob_data_size;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2592   int ret;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2593
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2594   if (chip->options & 
> NAND_BUSWIDTH_16) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2595           ret = 
> cadence_nand_set_access_width16(cdns_ctrl, true);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2596           if (ret)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2597                   goto free_buf;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2598   }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2599
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2600   chip->bbt_options |= 
> NAND_BBT_USE_FLASH;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2601   chip->bbt_options |= 
> NAND_BBT_NO_OOB;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2602   chip->ecc.mode = NAND_ECC_HW;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2603
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2604   chip->options |= 
> NAND_NO_SUBPAGE_WRITE;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2605
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2606   cdns_chip->bbm_offs = 
> chip->badblockpos;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2607   if (chip->options & 
> NAND_BUSWIDTH_16) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2608           cdns_chip->bbm_offs &= 
> ~0x01;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2609           cdns_chip->bbm_len = 2;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2610   } else {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2611           cdns_chip->bbm_len = 1;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2612   }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2613
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2614   ret = nand_ecc_choose_conf(chip,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2615                              
> &cdns_ctrl->ecc_caps,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2616                              
> mtd->oobsize - cdns_chip->bbm_len);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2617   if (ret) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2618           dev_err(cdns_ctrl->dev, 
> "ECC configuration failed\n");
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2619           goto free_buf;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2620   }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2621
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2622   dev_dbg(cdns_ctrl->dev,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2623           "chosen ECC settings: 
> step=%d, strength=%d, bytes=%d\n",
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2624           chip->ecc.size, 
> chip->ecc.strength, chip->ecc.bytes);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2625
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2626   /* Error correction 
> configuration. */
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2627   cdns_chip->sector_size = 
> chip->ecc.size;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2628   cdns_chip->sector_count = 
> mtd->writesize / cdns_chip->sector_size;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2629
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2630   cdns_chip->avail_oob_size = 
> mtd->oobsize - ecc_size;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2631
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2632   max_oob_data_size = 
> MAX_OOB_SIZE_PER_SECTOR;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2633
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2634   if (cdns_chip->avail_oob_size > 
> max_oob_data_size)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2635           
> cdns_chip->avail_oob_size = max_oob_data_size;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2636
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2637   if ((cdns_chip->avail_oob_size 
> + cdns_chip->bbm_len + ecc_size)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2638       > mtd->oobsize)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2639           
> cdns_chip->avail_oob_size -= 4;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2640
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2641   cdns_chip->corr_str_idx =
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2642           
> cadence_nand_get_ecc_strength_idx(cdns_ctrl,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2643                                   
>           chip->ecc.strength);
> 3235ae79d58b8d Piotr Sroka 2019-09-18 @2644   if (cdns_chip->corr_str_idx < 0)
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2645           return -EINVAL;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2646
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2647   if 
> (cadence_nand_wait_for_value(cdns_ctrl, CTRL_STATUS,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2648                                   
> 1000000,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2649                                   
> CTRL_STATUS_CTRL_BUSY, true))
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2650           return -ETIMEDOUT;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2651
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2652   
> cadence_nand_set_ecc_strength(cdns_ctrl,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2653                                 
> cdns_chip->corr_str_idx);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2654
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2655   
> cadence_nand_set_erase_detection(cdns_ctrl, true,
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2656                                   
>  chip->ecc.strength);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2657
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2658   /* Override the default read 
> operations. */
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2659   chip->ecc.read_page = 
> cadence_nand_read_page;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2660   chip->ecc.read_page_raw = 
> cadence_nand_read_page_raw;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2661   chip->ecc.write_page = 
> cadence_nand_write_page;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2662   chip->ecc.write_page_raw = 
> cadence_nand_write_page_raw;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2663   chip->ecc.read_oob = 
> cadence_nand_read_oob;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2664   chip->ecc.write_oob = 
> cadence_nand_write_oob;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2665   chip->ecc.read_oob_raw = 
> cadence_nand_read_oob_raw;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2666   chip->ecc.write_oob_raw = 
> cadence_nand_write_oob_raw;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2667
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2668   if ((mtd->writesize + 
> mtd->oobsize) > cdns_ctrl->buf_size) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2669           cdns_ctrl->buf_size = 
> mtd->writesize + mtd->oobsize;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2670           kfree(cdns_ctrl->buf);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2671           cdns_ctrl->buf = 
> kzalloc(cdns_ctrl->buf_size, GFP_KERNEL);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2672           if (!cdns_ctrl->buf) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2673                   ret = -ENOMEM;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2674                   goto free_buf;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2675           }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2676   }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2677
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2678   /* Is 32-bit DMA supported? */
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2679   ret = 
> dma_set_mask(cdns_ctrl->dev, DMA_BIT_MASK(32));
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2680   if (ret) {
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2681           dev_err(cdns_ctrl->dev, 
> "no usable DMA configuration\n");
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2682           goto free_buf;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2683   }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2684
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2685   mtd_set_ooblayout(mtd, 
> &cadence_nand_ooblayout_ops);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2686
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2687   return 0;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2688
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2689  free_buf:
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2690   kfree(cdns_ctrl->buf);
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2691
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2692   return ret;
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2693  }
> 3235ae79d58b8d Piotr Sroka 2019-09-18  2694
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to