gpio: tegra: add missing error handling to probe
authorStephen Warren <swarren@nvidia.com>
Fri, 6 Dec 2013 20:36:11 +0000 (13:36 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 11 Dec 2013 12:37:48 +0000 (13:37 +0100)
The call to gpiochip_add() is not currently error-checked. Add the
missing checking.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-tegra.c

index cfd3b9037bc7f4647ada0b44cd4871701be4bce6..2b49f878b56c69c8f28897dbc5c99d59daa09f91 100644 (file)
@@ -425,6 +425,7 @@ static int tegra_gpio_probe(struct platform_device *pdev)
        struct tegra_gpio_soc_config *config;
        struct resource *res;
        struct tegra_gpio_bank *bank;
+       int ret;
        int gpio;
        int i;
        int j;
@@ -494,7 +495,11 @@ static int tegra_gpio_probe(struct platform_device *pdev)
 
        tegra_gpio_chip.of_node = pdev->dev.of_node;
 
-       gpiochip_add(&tegra_gpio_chip);
+       ret = gpiochip_add(&tegra_gpio_chip);
+       if (ret < 0) {
+               irq_domain_remove(irq_domain);
+               return ret;
+       }
 
        for (gpio = 0; gpio < tegra_gpio_chip.ngpio; gpio++) {
                int irq = irq_create_mapping(irq_domain, gpio);