diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2015-09-30 17:50:20 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-10-05 03:13:39 -0400 |
commit | cf3f2a2c8bae0db72233629c9da9d9f617b3f8af (patch) | |
tree | 9e538ad4fbdf9f5887a7e669cc369e06a5e006e9 /drivers/gpio/gpio-generic.c | |
parent | 2db8aba860c70478f6af18c410a3e513a2d2f541 (diff) |
gpio: generic: improve error handling in bgpio_map
If bgpio_map returns NULL then err should always be set.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-generic.c')
-rw-r--r-- | drivers/gpio/gpio-generic.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c index a3f07537fe62..eefff1a29986 100644 --- a/drivers/gpio/gpio-generic.c +++ b/drivers/gpio/gpio-generic.c | |||
@@ -591,8 +591,10 @@ static void __iomem *bgpio_map(struct platform_device *pdev, | |||
591 | *err = 0; | 591 | *err = 0; |
592 | 592 | ||
593 | r = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); | 593 | r = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); |
594 | if (!r) | 594 | if (!r) { |
595 | *err = -EINVAL; | ||
595 | return NULL; | 596 | return NULL; |
597 | } | ||
596 | 598 | ||
597 | sz = resource_size(r); | 599 | sz = resource_size(r); |
598 | if (sz != sane_sz) { | 600 | if (sz != sane_sz) { |
@@ -637,8 +639,8 @@ static int bgpio_pdev_probe(struct platform_device *pdev) | |||
637 | sz = resource_size(r); | 639 | sz = resource_size(r); |
638 | 640 | ||
639 | dat = bgpio_map(pdev, "dat", sz, &err); | 641 | dat = bgpio_map(pdev, "dat", sz, &err); |
640 | if (!dat) | 642 | if (err) |
641 | return err ? err : -EINVAL; | 643 | return err; |
642 | 644 | ||
643 | set = bgpio_map(pdev, "set", sz, &err); | 645 | set = bgpio_map(pdev, "set", sz, &err); |
644 | if (err) | 646 | if (err) |