|
@@ -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;
|
|
|
}
|