Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2788c98 authored by Mike Dunn's avatar Mike Dunn Committed by David Woodhouse
Browse files

mtd: nand: add sanity check of ecc strength to nand_scan_tail()

This patch adds sanity checks that ensure that drivers for controllers with
hardware ECC set the 'strength' element in struct nand_ecc_ctrl.  Also stylistic
changes to the line that calculates strength for software ECC.

This v2 simplifies the check.  Thanks Brian!¹

¹ http://lists.infradead.org/pipermail/linux-mtd/2012-April/040890.html



Signed-off-by: default avatarMike Dunn <mikedunn@newsguy.com>
Acked-by: default avatarBrian Norris <computersforpeace@gmail.com>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 3f91e94f
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -3348,8 +3348,13 @@ int nand_scan_tail(struct mtd_info *mtd)
		if (!chip->ecc.write_oob)
			chip->ecc.write_oob = nand_write_oob_syndrome;

		if (mtd->writesize >= chip->ecc.size)
		if (mtd->writesize >= chip->ecc.size) {
			if (!chip->ecc.strength) {
				pr_warn("Driver must set ecc.strength when using hardware ECC\n");
				BUG();
			}
			break;
		}
		pr_warn("%d byte HW ECC not possible on "
			   "%d byte page size, fallback to SW ECC\n",
			   chip->ecc.size, mtd->writesize);