mtd: nand-gpio: don't waste memory for OF failure
authorBrian Norris <computersforpeace@gmail.com>
Sat, 14 Dec 2013 05:19:58 +0000 (21:19 -0800)
committerBrian Norris <computersforpeace@gmail.com>
Tue, 7 Jan 2014 18:07:34 +0000 (10:07 -0800)
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@gmail.com>
drivers/mtd/nand/gpio.c

index 8dfdbb6..8e6148a 100644 (file)
@@ -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;