Re: [RESET PATCH v5 5/5] mtd: rawnand: micron: Micron SLC NAND filling block
From: kbuild test robot
Date: Tue May 19 2020 - 16:32:45 EST
Hi Bean,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.7-rc6 next-20200519]
[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/Bean-Huo/Micron-SLC-NAND-filling-block/20200519-205658
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 642b151f45dd54809ea00ecd3976a56c1ec9b53d
config: arm-randconfig-r006-20200519 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 135b877874fae96b4372c8a3fbfaa8ff44ff86e3)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/mtd/nand/raw/nand_micron.c:520:3: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
return 0;
^
drivers/mtd/nand/raw/nand_micron.c:517:2: note: previous statement is here
if (remaining_p)
^
1 warning generated.
vim +/if +520 drivers/mtd/nand/raw/nand_micron.c
484
485 static int micron_nand_write_oob(struct nand_chip *chip, loff_t to,
486 struct mtd_oob_ops *ops)
487 {
488 struct micron_nand *micron = nand_get_manufacturer_data(chip);
489 u32 eb_sz = nanddev_eraseblock_size(&chip->base);
490 u32 p_sz = nanddev_page_size(&chip->base);
491 u32 ppeb = nanddev_pages_per_eraseblock(&chip->base);
492 u32 nb_p_tot = ops->len / p_sz;
493 u32 first_eb = DIV_ROUND_DOWN_ULL(to, eb_sz);
494 u32 first_p = DIV_ROUND_UP_ULL(to - (first_eb * eb_sz), p_sz);
495 u32 nb_eb = DIV_ROUND_UP_ULL(first_p + nb_p_tot, ppeb);
496 u32 remaining_p, eb, nb_p;
497 int ret;
498
499 ret = nand_write_oob_nand(chip, to, ops);
500
501 if (ret || ops->len != ops->retlen)
502 return ret;
503
504 /* Mark the last pages of the first erase block to write */
505 nb_p = min(nb_p_tot, ppeb - first_p);
506 micron->writtenp[first_eb] |= GENMASK(first_p + nb_p, 0) &
507 MICRON_PAGE_MASK_TRIGGER;
508 remaining_p = nb_p_tot - nb_p;
509
510 /* Mark all the pages of all "in-the-middle" erase blocks */
511 for (eb = first_eb + 1; eb < first_eb + nb_eb - 1; eb++) {
512 micron->writtenp[eb] |= MICRON_PAGE_MASK_TRIGGER;
513 remaining_p -= ppeb;
514 }
515
516 /* Mark the first pages of the last erase block to write */
517 if (remaining_p)
518 micron->writtenp[eb] |= GENMASK(remaining_p - 1, 0) &
519 MICRON_PAGE_MASK_TRIGGER;
> 520 return 0;
521 }
522
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip