From 1fdd6d4d4df458d97fa268cd41caa7ee4f012a3e Mon Sep 17 00:00:00 2001 From: Anton Vorontsov Date: Tue, 8 Jun 2010 07:48:15 -0600 Subject: [PATCH] --- yaml --- r: 204901 b: refs/heads/master c: cedb1881ba32f7e9cd49250bd79debccbe52b094 h: refs/heads/master i: 204899: 56d7da019f7b49c94b4ff750eff62686b1149bec v: v3 --- [refs] | 2 +- trunk/drivers/gpio/gpiolib.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 89a7c8a5021b..cb35b6db5789 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac80a51e2ce5c431de9997085f33cb6093218b1f +refs/heads/master: cedb1881ba32f7e9cd49250bd79debccbe52b094 diff --git a/trunk/drivers/gpio/gpiolib.c b/trunk/drivers/gpio/gpiolib.c index 3ca36542e338..713ca0e37f23 100644 --- a/trunk/drivers/gpio/gpiolib.c +++ b/trunk/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);