diff options
author | Aaro Koskinen <aaro.koskinen@nokia.com> | 2010-12-22 04:24:22 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-12-23 06:43:33 +0300 |
commit | e254811c205ec539b648cff54a7852ee8dcd2e5e (patch) | |
tree | ae6a382b424192053dbc1de6a9ee818262e1966b /drivers/gpio | |
parent | d153ba64450b9371158c6516d6cac120faace44c (diff) | |
download | linux-e254811c205ec539b648cff54a7852ee8dcd2e5e.tar.xz |
gpiolib: gpio_request_one(): add missing gpio_free()
If GPIO request succeeds, but configuration fails, it should be released.
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpiolib.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 21da9c19a0cb..649550e2cae9 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1281,6 +1281,9 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) err = gpio_direction_output(gpio, (flags & GPIOF_INIT_HIGH) ? 1 : 0); + if (err) + gpio_free(gpio); + return err; } EXPORT_SYMBOL_GPL(gpio_request_one); |