All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH 2/2] mtd: spi-nand: Add read retry support
Date: Mon, 9 Sep 2024 20:34:30 +0800	[thread overview]
Message-ID: <202409092034.1htCE96j-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240905055333.2363358-3-linchengming884@gmail.com>
References: <20240905055333.2363358-3-linchengming884@gmail.com>
TO: Cheng Ming Lin <linchengming884@gmail.com>
TO: miquel.raynal@bootlin.com
TO: vigneshr@ti.com
TO: linux-mtd@lists.infradead.org
TO: linux-kernel@vger.kernel.org
CC: richard@nod.at
CC: alvinzhou@mxic.com.tw
CC: leoyu@mxic.com.tw
CC: Cheng Ming Lin <chengminglin@mxic.com.tw>

Hi Cheng,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mtd/nand/next]
[also build test WARNING on linus/master v6.11-rc7]
[cannot apply to next-20240909]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Cheng-Ming-Lin/mtd-spi-nand-Add-fixups-for-read-retry/20240905-135719
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
patch link:    https://lore.kernel.org/r/20240905055333.2363358-3-linchengming884%40gmail.com
patch subject: [PATCH 2/2] mtd: spi-nand: Add read retry support
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: x86_64-randconfig-161-20240909 (https://download.01.org/0day-ci/archive/20240909/202409092034.1htCE96j-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202409092034.1htCE96j-lkp@intel.com/

smatch warnings:
drivers/mtd/nand/spi/core.c:692 spinand_mtd_read() error: we previously assumed 'spinand->info->fixups' could be null (see line 666)

vim +692 drivers/mtd/nand/spi/core.c

7529df4652482c Peter Pan      2018-06-22  632  
7529df4652482c Peter Pan      2018-06-22  633  static int spinand_mtd_read(struct mtd_info *mtd, loff_t from,
7529df4652482c Peter Pan      2018-06-22  634  			    struct mtd_oob_ops *ops)
7529df4652482c Peter Pan      2018-06-22  635  {
7529df4652482c Peter Pan      2018-06-22  636  	struct spinand_device *spinand = mtd_to_spinand(mtd);
7529df4652482c Peter Pan      2018-06-22  637  	struct nand_device *nand = mtd_to_nanddev(mtd);
7bea6056927727 Michał Kępień  2022-06-29  638  	struct mtd_ecc_stats old_stats;
7529df4652482c Peter Pan      2018-06-22  639  	unsigned int max_bitflips = 0;
7529df4652482c Peter Pan      2018-06-22  640  	struct nand_io_iter iter;
3d1f08b032dc4e Miquel Raynal  2020-10-01  641  	bool disable_ecc = false;
7529df4652482c Peter Pan      2018-06-22  642  	bool ecc_failed = false;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  643  	u8 retry_mode = 0;
7529df4652482c Peter Pan      2018-06-22  644  	int ret = 0;
7529df4652482c Peter Pan      2018-06-22  645  
3d1f08b032dc4e Miquel Raynal  2020-10-01  646  	if (ops->mode == MTD_OPS_RAW || !spinand->eccinfo.ooblayout)
3d1f08b032dc4e Miquel Raynal  2020-10-01  647  		disable_ecc = true;
7529df4652482c Peter Pan      2018-06-22  648  
7529df4652482c Peter Pan      2018-06-22  649  	mutex_lock(&spinand->lock);
7529df4652482c Peter Pan      2018-06-22  650  
7bea6056927727 Michał Kępień  2022-06-29  651  	old_stats = mtd->ecc_stats;
7bea6056927727 Michał Kępień  2022-06-29  652  
701981cab01696 Miquel Raynal  2020-08-27  653  	nanddev_io_for_each_page(nand, NAND_PAGE_READ, from, ops, &iter) {
3d1f08b032dc4e Miquel Raynal  2020-10-01  654  		if (disable_ecc)
3d1f08b032dc4e Miquel Raynal  2020-10-01  655  			iter.req.mode = MTD_OPS_RAW;
7529df4652482c Peter Pan      2018-06-22  656  
3d1f08b032dc4e Miquel Raynal  2020-10-01  657  		ret = spinand_select_target(spinand, iter.req.pos.target);
7529df4652482c Peter Pan      2018-06-22  658  		if (ret)
7529df4652482c Peter Pan      2018-06-22  659  			break;
7529df4652482c Peter Pan      2018-06-22  660  
ec2cf155ae799c Cheng Ming Lin 2024-09-05  661  read_retry:
3d1f08b032dc4e Miquel Raynal  2020-10-01  662  		ret = spinand_read_page(spinand, &iter.req);
7529df4652482c Peter Pan      2018-06-22  663  		if (ret < 0 && ret != -EBADMSG)
7529df4652482c Peter Pan      2018-06-22  664  			break;
7529df4652482c Peter Pan      2018-06-22  665  
ec2cf155ae799c Cheng Ming Lin 2024-09-05 @666  		if (ret == -EBADMSG && spinand->info->fixups) {
ec2cf155ae799c Cheng Ming Lin 2024-09-05  667  			if (spinand->read_retries && ((retry_mode + 1) < spinand->read_retries)) {
ec2cf155ae799c Cheng Ming Lin 2024-09-05  668  				retry_mode++;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  669  				ret = spinand->info->fixups->setup_read_retry(spinand, retry_mode);
ec2cf155ae799c Cheng Ming Lin 2024-09-05  670  				if (ret < 0)
ec2cf155ae799c Cheng Ming Lin 2024-09-05  671  					break;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  672  
ec2cf155ae799c Cheng Ming Lin 2024-09-05  673  				/* Reset ecc_stats; retry */
ec2cf155ae799c Cheng Ming Lin 2024-09-05  674  				mtd->ecc_stats = old_stats;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  675  				goto read_retry;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  676  			} else {
ec2cf155ae799c Cheng Ming Lin 2024-09-05  677  				/* No more retry modes; real failure */
7529df4652482c Peter Pan      2018-06-22  678  				ecc_failed = true;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  679  			}
ec2cf155ae799c Cheng Ming Lin 2024-09-05  680  		} else if (ret == -EBADMSG) {
ec2cf155ae799c Cheng Ming Lin 2024-09-05  681  			ecc_failed = true;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  682  		} else {
7529df4652482c Peter Pan      2018-06-22  683  			max_bitflips = max_t(unsigned int, max_bitflips, ret);
ec2cf155ae799c Cheng Ming Lin 2024-09-05  684  		}
7529df4652482c Peter Pan      2018-06-22  685  
b83408b580eccf WeiXiong Liao  2019-06-28  686  		ret = 0;
7529df4652482c Peter Pan      2018-06-22  687  		ops->retlen += iter.req.datalen;
7529df4652482c Peter Pan      2018-06-22  688  		ops->oobretlen += iter.req.ooblen;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  689  
ec2cf155ae799c Cheng Ming Lin 2024-09-05  690  		/* Reset to retry mode 0*/
ec2cf155ae799c Cheng Ming Lin 2024-09-05  691  		if (retry_mode) {
ec2cf155ae799c Cheng Ming Lin 2024-09-05 @692  			ret = spinand->info->fixups->setup_read_retry(spinand, 0);
ec2cf155ae799c Cheng Ming Lin 2024-09-05  693  			if (ret < 0)
ec2cf155ae799c Cheng Ming Lin 2024-09-05  694  				break;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  695  			retry_mode = 0;
ec2cf155ae799c Cheng Ming Lin 2024-09-05  696  		}
7529df4652482c Peter Pan      2018-06-22  697  	}
7529df4652482c Peter Pan      2018-06-22  698  
ec2cf155ae799c Cheng Ming Lin 2024-09-05  699  
7bea6056927727 Michał Kępień  2022-06-29  700  	if (ops->stats) {
7bea6056927727 Michał Kępień  2022-06-29  701  		ops->stats->uncorrectable_errors +=
7bea6056927727 Michał Kępień  2022-06-29  702  			mtd->ecc_stats.failed - old_stats.failed;
7bea6056927727 Michał Kępień  2022-06-29  703  		ops->stats->corrected_bitflips +=
7bea6056927727 Michał Kępień  2022-06-29  704  			mtd->ecc_stats.corrected - old_stats.corrected;
7bea6056927727 Michał Kępień  2022-06-29  705  	}
7bea6056927727 Michał Kępień  2022-06-29  706  
7529df4652482c Peter Pan      2018-06-22  707  	mutex_unlock(&spinand->lock);
7529df4652482c Peter Pan      2018-06-22  708  
7529df4652482c Peter Pan      2018-06-22  709  	if (ecc_failed && !ret)
7529df4652482c Peter Pan      2018-06-22  710  		ret = -EBADMSG;
7529df4652482c Peter Pan      2018-06-22  711  
7529df4652482c Peter Pan      2018-06-22  712  	return ret ? ret : max_bitflips;
7529df4652482c Peter Pan      2018-06-22  713  }
7529df4652482c Peter Pan      2018-06-22  714  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2024-09-09 12:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-09 12:34 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-09-05  5:53 [PATCH 0/2] mtd: spi-nand: Add support for read retry Cheng Ming Lin
2024-09-05  5:53 ` [PATCH 2/2] mtd: spi-nand: Add read retry support Cheng Ming Lin
2024-09-05  5:53   ` Cheng Ming Lin
2024-10-01 10:17   ` Miquel Raynal
2024-10-01 10:17     ` Miquel Raynal
2024-10-07  5:53     ` Cheng Ming Lin
2024-10-07  5:53       ` Cheng Ming Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202409092034.1htCE96j-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.