mtd: nand: Do not dereference before NULL check

In nanddev_init mtd and memorg are assigned values that dereference nand
but this happens before a NULL check for nand. Move the assignments
after the NULL check.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
This commit is contained in:
Andrew Goodbody 2025-07-31 17:21:32 +01:00 committed by Michael Trimarchi
parent d246e70cf8
commit 6b156c62ce

View File

@ -201,8 +201,8 @@ EXPORT_SYMBOL_GPL(nanddev_mtd_erase);
int nanddev_init(struct nand_device *nand, const struct nand_ops *ops, int nanddev_init(struct nand_device *nand, const struct nand_ops *ops,
struct module *owner) struct module *owner)
{ {
struct mtd_info *mtd = nanddev_to_mtd(nand); struct mtd_info *mtd;
struct nand_memory_organization *memorg = nanddev_get_memorg(nand); struct nand_memory_organization *memorg;
if (!nand || !ops) if (!nand || !ops)
return -EINVAL; return -EINVAL;
@ -210,6 +210,9 @@ int nanddev_init(struct nand_device *nand, const struct nand_ops *ops,
if (!ops->erase || !ops->markbad || !ops->isbad) if (!ops->erase || !ops->markbad || !ops->isbad)
return -EINVAL; return -EINVAL;
mtd = nanddev_to_mtd(nand);
memorg = nanddev_get_memorg(nand);
if (!memorg->bits_per_cell || !memorg->pagesize || if (!memorg->bits_per_cell || !memorg->pagesize ||
!memorg->pages_per_eraseblock || !memorg->eraseblocks_per_lun || !memorg->pages_per_eraseblock || !memorg->eraseblocks_per_lun ||
!memorg->planes_per_lun || !memorg->luns_per_target || !memorg->planes_per_lun || !memorg->luns_per_target ||