Merge tag 'for-linus-20131112' of git://git.infradead.org/linux-mtd
[cascardo/linux.git] / drivers / mtd / nand / socrates_nand.c
index 49bd915..fe8058a 100644 (file)
@@ -150,17 +150,13 @@ static int socrates_nand_probe(struct platform_device *ofdev)
        struct mtd_part_parser_data ppdata;
 
        /* Allocate memory for the device structure (and zero it) */
-       host = kzalloc(sizeof(struct socrates_nand_host), GFP_KERNEL);
-       if (!host) {
-               printk(KERN_ERR
-                      "socrates_nand: failed to allocate device structure.\n");
+       host = devm_kzalloc(&ofdev->dev, sizeof(*host), GFP_KERNEL);
+       if (!host)
                return -ENOMEM;
-       }
 
        host->io_base = of_iomap(ofdev->dev.of_node, 0);
        if (host->io_base == NULL) {
-               printk(KERN_ERR "socrates_nand: ioremap failed\n");
-               kfree(host);
+               dev_err(&ofdev->dev, "ioremap failed\n");
                return -EIO;
        }
 
@@ -212,9 +208,7 @@ static int socrates_nand_probe(struct platform_device *ofdev)
        nand_release(mtd);
 
 out:
-       dev_set_drvdata(&ofdev->dev, NULL);
        iounmap(host->io_base);
-       kfree(host);
        return res;
 }
 
@@ -228,9 +222,7 @@ static int socrates_nand_remove(struct platform_device *ofdev)
 
        nand_release(mtd);
 
-       dev_set_drvdata(&ofdev->dev, NULL);
        iounmap(host->io_base);
-       kfree(host);
 
        return 0;
 }