diff --git a/arch/arm64/boot/dts/amlogic/gxl_p401_2g.dts b/arch/arm64/boot/dts/amlogic/gxl_p401_2g.dts index ef472f242f6a..f8d85f079f6f 100644 --- a/arch/arm64/boot/dts/amlogic/gxl_p401_2g.dts +++ b/arch/arm64/boot/dts/amlogic/gxl_p401_2g.dts @@ -328,7 +328,7 @@ }; system{ offset=<0x0 0x0>; - size=<0x0 0xDC40000>; + size=<0x0 0xDC00000>; }; data{ offset=<0xffffffff 0xffffffff>; diff --git a/drivers/amlogic/mtd/aml_nand.c b/drivers/amlogic/mtd/aml_nand.c index 1ddc6660c2f9..04e697ab3799 100644 --- a/drivers/amlogic/mtd/aml_nand.c +++ b/drivers/amlogic/mtd/aml_nand.c @@ -434,6 +434,12 @@ static int aml_nand_add_partition(struct aml_nand_chip *aml_chip) start_blk = 0; do { offset = adjust_offset + start_blk * mtd->erasesize; + if (offset > mtd->size) { + pr_info("%s %d error : over the nand size!!!\n", + __func__, __LINE__); + WARN_ON(1); + return -ENOMEM; + } error = mtd->_block_isbad(mtd, offset); if (error == FACTORY_BAD_BLOCK_ERROR) { pr_info("%s:%d factory bad addr=%llx\n", diff --git a/drivers/amlogic/mtd/mtd_driver.c b/drivers/amlogic/mtd/mtd_driver.c index d7373bc5861c..db5a7378b3c8 100644 --- a/drivers/amlogic/mtd/mtd_driver.c +++ b/drivers/amlogic/mtd/mtd_driver.c @@ -259,7 +259,8 @@ static int mtd_nand_probe(struct platform_device *pdev) /*prase dtb and get device(part) information*/ prase_get_dtb_nand_parameter(aml_nand_dev, pdev); - nand_init(pdev); + err = nand_init(pdev); + pr_info("%s %d , err = %d\n", __func__, __LINE__, err); exit_error: return err;