summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mtd/nand/socrates_nand.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
index f44c7c884a2..e77da7efa20 100644
--- a/drivers/mtd/nand/socrates_nand.c
+++ b/drivers/mtd/nand/socrates_nand.c
@@ -149,17 +149,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);
return -EIO;
}
@@ -212,7 +208,6 @@ static int socrates_nand_probe(struct platform_device *ofdev)
out:
iounmap(host->io_base);
- kfree(host);
return res;
}
@@ -227,7 +222,6 @@ static int socrates_nand_remove(struct platform_device *ofdev)
nand_release(mtd);
iounmap(host->io_base);
- kfree(host);
return 0;
}