diff options
author | Brian Norris <computersforpeace@gmail.com> | 2013-12-14 05:19:58 (GMT) |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2014-01-07 18:07:34 (GMT) |
commit | 103cdd8520b5ec85ab4345f54db5cc32a517f468 (patch) | |
tree | 989ce95429095a3a4ea6452b110a859d88b4b7f9 /drivers/mtd/nand/gpio.c | |
parent | a01eb2043b84bd6d595df58b7eba4f8841050b5e (diff) | |
download | linux-103cdd8520b5ec85ab4345f54db5cc32a517f468.tar.xz |
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@gmail.com>
Diffstat (limited to 'drivers/mtd/nand/gpio.c')
-rw-r--r-- | drivers/mtd/nand/gpio.c | 8 |
1 files 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; |