Commit a92c721d authored by Boris Brezillon's avatar Boris Brezillon

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: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
parent 872164e4
...@@ -1786,6 +1786,9 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd, ...@@ -1786,6 +1786,9 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd,
if (!data) if (!data)
return -ENOMEM; return -ENOMEM;
if (ecc->size != 512 && ecc->size != 1024)
return -EINVAL;
/* Prefer 1k ECC chunk over 512 ones */ /* Prefer 1k ECC chunk over 512 ones */
if (ecc->size == 512 && mtd->writesize > 512) { if (ecc->size == 512 && mtd->writesize > 512) {
ecc->size = 1024; ecc->size = 1024;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment