aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/onenand/onenand_base.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index 1b26f50e159a..045811f21497 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -3932,6 +3932,13 @@ int onenand_scan(struct mtd_info *mtd, int maxchips)
3932 __func__); 3932 __func__);
3933 return -ENOMEM; 3933 return -ENOMEM;
3934 } 3934 }
3935#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
3936 this->verify_buf = kzalloc(mtd->writesize, GFP_KERNEL);
3937 if (!this->verify_buf) {
3938 kfree(this->page_buf);
3939 return -ENOMEM;
3940 }
3941#endif
3935 this->options |= ONENAND_PAGEBUF_ALLOC; 3942 this->options |= ONENAND_PAGEBUF_ALLOC;
3936 } 3943 }
3937 if (!this->oob_buf) { 3944 if (!this->oob_buf) {
@@ -4059,8 +4066,12 @@ void onenand_release(struct mtd_info *mtd)
4059 kfree(this->bbm); 4066 kfree(this->bbm);
4060 } 4067 }
4061 /* Buffers allocated by onenand_scan */ 4068 /* Buffers allocated by onenand_scan */
4062 if (this->options & ONENAND_PAGEBUF_ALLOC) 4069 if (this->options & ONENAND_PAGEBUF_ALLOC) {
4063 kfree(this->page_buf); 4070 kfree(this->page_buf);
4071#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
4072 kfree(this->verify_buf);
4073#endif
4074 }
4064 if (this->options & ONENAND_OOBBUF_ALLOC) 4075 if (this->options & ONENAND_OOBBUF_ALLOC)
4065 kfree(this->oob_buf); 4076 kfree(this->oob_buf);
4066 kfree(mtd->eraseregions); 4077 kfree(mtd->eraseregions);