]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
mtd: nand: ams-delta: fix overwritten mtd_info->owner in initialization
authorAkinobu Mita <akinobu.mita@gmail.com>
Sun, 11 Jan 2015 13:07:20 +0000 (22:07 +0900)
committerBrian Norris <computersforpeace@gmail.com>
Fri, 16 Jan 2015 03:33:03 +0000 (19:33 -0800)
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>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/ams-delta.c

index f1d555cfb332f17a91ef4c53eb3ca5c617477b70..842f8fe91b56cb2ef248c1c6e868cedaf2113766 100644 (file)
@@ -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;