mtd: cs553x_nand: Fix kasprintf() usage
kasprintf() does a dynamic memory allocation and can fail. We have to handle that case. Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
Родитель
905cce7f43
Коммит
bc349da0a6
|
@ -237,17 +237,23 @@ static int __init cs553x_init_one(int cs, int mmio, unsigned long adr)
|
||||||
/* Enable the following for a flash based bad block table */
|
/* Enable the following for a flash based bad block table */
|
||||||
this->bbt_options = NAND_BBT_USE_FLASH;
|
this->bbt_options = NAND_BBT_USE_FLASH;
|
||||||
|
|
||||||
/* Scan to find existence of the device */
|
new_mtd->name = kasprintf(GFP_KERNEL, "cs553x_nand_cs%d", cs);
|
||||||
if (nand_scan(new_mtd, 1)) {
|
if (!new_mtd->name) {
|
||||||
err = -ENXIO;
|
err = -ENOMEM;
|
||||||
goto out_ior;
|
goto out_ior;
|
||||||
}
|
}
|
||||||
|
|
||||||
new_mtd->name = kasprintf(GFP_KERNEL, "cs553x_nand_cs%d", cs);
|
/* Scan to find existence of the device */
|
||||||
|
if (nand_scan(new_mtd, 1)) {
|
||||||
|
err = -ENXIO;
|
||||||
|
goto out_free;
|
||||||
|
}
|
||||||
|
|
||||||
cs553x_mtd[cs] = new_mtd;
|
cs553x_mtd[cs] = new_mtd;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
out_free:
|
||||||
|
kfree(new_mtd->name);
|
||||||
out_ior:
|
out_ior:
|
||||||
iounmap(this->IO_ADDR_R);
|
iounmap(this->IO_ADDR_R);
|
||||||
out_mtd:
|
out_mtd:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче