mtd: nand-gpio: don't waste memory for OF failure

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Tue Jan 28 00:59:06 EST 2014


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=103cdd8520b5ec85ab4345f54db5cc32a517f468
Commit:     103cdd8520b5ec85ab4345f54db5cc32a517f468
Parent:     a01eb2043b84bd6d595df58b7eba4f8841050b5e
Author:     Brian Norris <computersforpeace at gmail.com>
AuthorDate: Fri Dec 13 21:19:58 2013 -0800
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Tue Jan 7 10:07:34 2014 -0800

    mtd: nand-gpio: don't waste memory for OF failure
    
    We shouldn't try to allocate a resource until we're sure the
    of_property_read_u64() call didn't fail. This is especially important if
    we use this code for both CONFIG_OF and !CONFIG_OF builds, since
    of_property_read_u64() will always return -ENOSYS for !CONFIG_OF.
    
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/nand/gpio.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/gpio.c b/drivers/mtd/nand/gpio.c
index 8dfdbb6..8e6148a 100644
--- a/drivers/mtd/nand/gpio.c
+++ b/drivers/mtd/nand/gpio.c
@@ -132,13 +132,17 @@ static int gpio_nand_get_config_of(const struct device *dev,
 
 static struct resource *gpio_nand_get_io_sync_of(struct platform_device *pdev)
 {
-	struct resource *r = devm_kzalloc(&pdev->dev, sizeof(*r), GFP_KERNEL);
+	struct resource *r;
 	u64 addr;
 
-	if (!r || of_property_read_u64(pdev->dev.of_node,
+	if (of_property_read_u64(pdev->dev.of_node,
 				       "gpio-control-nand,io-sync-reg", &addr))
 		return NULL;
 
+	r = devm_kzalloc(&pdev->dev, sizeof(*r), GFP_KERNEL);
+	if (!r)
+		return NULL;
+
 	r->start = addr;
 	r->end = r->start + 0x3;
 	r->flags = IORESOURCE_MEM;



More information about the linux-mtd-cvs mailing list