mtd: rawnand: nandsim: Free the partition names in ns_free()
authorMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 25 May 2020 08:58:44 +0000 (10:58 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Sun, 31 May 2020 08:53:38 +0000 (10:53 +0200)
ns_free() is the helper that is called symmetrically to ns_init() and
so should free the same objects, including the partition names.

Now, callers of ns_free() do not need to free this partition names
themselves.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200525085851.17682-11-miquel.raynal@bootlin.com
drivers/mtd/nand/raw/nandsim.c

index d6e16dd..4bc5da3 100644 (file)
@@ -786,6 +786,11 @@ free_partition_names:
  */
 static void ns_free(struct nandsim *ns)
 {
+       int i;
+
+       for (i = 0; i < ARRAY_SIZE(ns->partitions); ++i)
+               kfree(ns->partitions[i].name);
+
        kfree(ns->buf.byte);
        ns_free_device(ns);
 
@@ -2270,7 +2275,7 @@ static int __init ns_init_module(void)
 {
        struct nand_chip *chip;
        struct nandsim *ns;
-       int ret, i;
+       int ret;
 
        if (bus_width != 8 && bus_width != 16) {
                NS_ERR("wrong bus width (%d), use only 8 or 16\n", bus_width);
@@ -2402,8 +2407,6 @@ static int __init ns_init_module(void)
 err_exit:
        ns_free(ns);
        nand_release(chip);
-       for (i = 0;i < ARRAY_SIZE(ns->partitions); ++i)
-               kfree(ns->partitions[i].name);
 error:
        kfree(ns);
        ns_free_lists();
@@ -2420,13 +2423,10 @@ static void __exit ns_cleanup_module(void)
 {
        struct nand_chip *chip = mtd_to_nand(nsmtd);
        struct nandsim *ns = nand_get_controller_data(chip);
-       int i;
 
        ns_debugfs_remove(ns);
        ns_free(ns);    /* Free nandsim private resources */
        nand_release(chip); /* Unregister driver */
-       for (i = 0;i < ARRAY_SIZE(ns->partitions); ++i)
-               kfree(ns->partitions[i].name);
        kfree(ns);        /* Free other structures */
        ns_free_lists();
 }