mtd: nand: ams-delta: fix overwritten mtd_info->owner in initialization
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>
This commit is contained in:
Родитель
45c6a0caeb
Коммит
526789fc53
|
@ -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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче