From: Anton Vorontsov Date: Tue, 8 Jun 2010 13:48:15 +0000 (-0600) Subject: gpiolib: cosmetic improvements for error handling in gpiochip_add() X-Git-Tag: v2.6.36-rc1~543^2~45 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=cedb1881ba32f7e9cd49250bd79debccbe52b094;p=~emulex%2Finfiniband.git gpiolib: cosmetic improvements for error handling in gpiochip_add() Hopefully it makes the code look nicer and makes it easier to extend this function. Signed-off-by: Anton Vorontsov Signed-off-by: Andrew Morton Signed-off-by: Grant Likely CC: devicetree-discuss@lists.ozlabs.org CC: linux-kernel@vger.kernel.org --- diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 3ca36542e33..713ca0e37f2 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1101,14 +1101,20 @@ int gpiochip_add(struct gpio_chip *chip) unlock: spin_unlock_irqrestore(&gpio_lock, flags); - if (status == 0) - status = gpiochip_export(chip); + + if (status) + goto fail; + + status = gpiochip_export(chip); + if (status) + goto fail; + + return 0; fail: /* failures here can mean systems won't boot... */ - if (status) - pr_err("gpiochip_add: gpios %d..%d (%s) failed to register\n", - chip->base, chip->base + chip->ngpio - 1, - chip->label ? : "generic"); + pr_err("gpiochip_add: gpios %d..%d (%s) failed to register\n", + chip->base, chip->base + chip->ngpio - 1, + chip->label ? : "generic"); return status; } EXPORT_SYMBOL_GPL(gpiochip_add);