From: Boris Brezillon Date: Mon, 6 Jun 2016 11:59:13 +0000 (+0200) Subject: mtd: nand: sunxi: check ecc->size values X-Git-Tag: v4.8-rc1~57^2~11^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a92c721dc638b3745266ffe85617fe54dfadff19;p=platform%2Fkernel%2Flinux-exynos.git 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 --- diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c index bb440b9..6e319ba 100644 --- a/drivers/mtd/nand/sunxi_nand.c +++ b/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;