mtd: nand: ams-delta: fix overwritten mtd_info->owner in initialization
diff mbox

Message ID 1420981640-16495-1-git-send-email-akinobu.mita@gmail.com
State Accepted
Commit 526789fc532a445975b60885a65d3cea5bfa6391
Headers show

Commit Message

Akinobu Mita Jan. 11, 2015, 1:07 p.m. UTC
In initialization routine, mtd_info->owner is overwritten by memset()
just after being initialized.  This can be fixed by moving memset() calls
to just before setting mtd_info->owner.  But the memory region is allocated
by kmalloc, so we can fix it by using kzalloc instead of kmalloc.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Jonathan McDowell <noodles@earth.li>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: linux-mtd@lists.infradead.org
---
 drivers/mtd/nand/ams-delta.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

Comments

Brian Norris Jan. 16, 2015, 3:33 a.m. UTC | #1
On Sun, Jan 11, 2015 at 10:07:20PM +0900, Akinobu Mita wrote:
> In initialization routine, mtd_info->owner is overwritten by memset()
> just after being initialized.  This can be fixed by moving memset() calls
> to just before setting mtd_info->owner.  But the memory region is allocated
> by kmalloc, so we can fix it by using kzalloc instead of kmalloc.
> 
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Jonathan McDowell <noodles@earth.li>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: linux-mtd@lists.infradead.org

Pushed to l2-mtd.git. Thanks!

Brian

Patch
diff mbox

diff --git a/drivers/mtd/nand/ams-delta.c b/drivers/mtd/nand/ams-delta.c
index f1d555c..842f8fe 100644
--- a/drivers/mtd/nand/ams-delta.c
+++ b/drivers/mtd/nand/ams-delta.c
@@ -183,7 +183,7 @@  static int ams_delta_init(struct platform_device *pdev)
 		return -ENXIO;
 
 	/* Allocate memory for MTD device structure and private data */
-	ams_delta_mtd = kmalloc(sizeof(struct mtd_info) +
+	ams_delta_mtd = kzalloc(sizeof(struct mtd_info) +
 				sizeof(struct nand_chip), GFP_KERNEL);
 	if (!ams_delta_mtd) {
 		printk (KERN_WARNING "Unable to allocate E3 NAND MTD device structure.\n");
@@ -196,10 +196,6 @@  static int ams_delta_init(struct platform_device *pdev)
 	/* Get pointer to private data */
 	this = (struct nand_chip *) (&ams_delta_mtd[1]);
 
-	/* Initialize structures */
-	memset(ams_delta_mtd, 0, sizeof(struct mtd_info));
-	memset(this, 0, sizeof(struct nand_chip));
-
 	/* Link the private data with the MTD structure */
 	ams_delta_mtd->priv = this;