mtd: nand: nandsim: use the mtd instance embedded in struct nand_chip
authorBoris BREZILLON <boris.brezillon@free-electrons.com>
Thu, 10 Dec 2015 08:00:13 +0000 (09:00 +0100)
committerBrian Norris <computersforpeace@gmail.com>
Fri, 18 Dec 2015 18:54:41 +0000 (10:54 -0800)
struct nand_chip now embeds an mtd device. Make use of this mtd instance.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/nandsim.c

index eb2a567f41d9d9b99344c43775ffd138b5b553ca..442eeaf09ebae3800d989f23aa2f0f96eff85684 100644 (file)
@@ -2236,13 +2236,13 @@ static int __init ns_init_module(void)
        }
 
        /* Allocate and initialize mtd_info, nand_chip and nandsim structures */
-       nsmtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip)
-                               + sizeof(struct nandsim), GFP_KERNEL);
-       if (!nsmtd) {
+       chip = kzalloc(sizeof(struct nand_chip) + sizeof(struct nandsim),
+                      GFP_KERNEL);
+       if (!chip) {
                NS_ERR("unable to allocate core structures.\n");
                return -ENOMEM;
        }
-       chip        = (struct nand_chip *)(nsmtd + 1);
+       nsmtd       = nand_to_mtd(chip);
         nsmtd->priv = (void *)chip;
        nand        = (struct nandsim *)(chip + 1);
        chip->priv  = (void *)nand;
@@ -2392,7 +2392,7 @@ err_exit:
        for (i = 0;i < ARRAY_SIZE(nand->partitions); ++i)
                kfree(nand->partitions[i].name);
 error:
-       kfree(nsmtd);
+       kfree(chip);
        free_lists();
 
        return retval;
@@ -2413,7 +2413,7 @@ static void __exit ns_cleanup_module(void)
        nand_release(nsmtd); /* Unregister driver */
        for (i = 0;i < ARRAY_SIZE(ns->partitions); ++i)
                kfree(ns->partitions[i].name);
-       kfree(nsmtd);        /* Free other structures */
+       kfree(mtd_to_nand(nsmtd));        /* Free other structures */
        free_lists();
 }