浏览代码

mtd: nand: sunxi: check ecc->size values

Verify that the ecc->size value is either 512 or 1024 bytes.
This should always be the case if this field was assigned to the
nand->ecc_step_size_ds value, but can be wrong when the user overloaded
this value with the nand-ecc-step-size DT property.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Boris Brezillon 9 年之前
父节点
当前提交
a92c721dc6
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/mtd/nand/sunxi_nand.c

+ 3 - 0
drivers/mtd/nand/sunxi_nand.c

@@ -1786,6 +1786,9 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd,
 	if (!data)
 		return -ENOMEM;
 
+	if (ecc->size != 512 && ecc->size != 1024)
+		return -EINVAL;
+
 	/* Prefer 1k ECC chunk over 512 ones */
 	if (ecc->size == 512 && mtd->writesize > 512) {
 		ecc->size = 1024;