Просмотр исходного кода

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>
Aaro Koskinen 15 лет назад
Родитель
Сommit
e254811c20
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      drivers/gpio/gpiolib.c

+ 3 - 0
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,
 		err = gpio_direction_output(gpio,
 				(flags & GPIOF_INIT_HIGH) ? 1 : 0);
 				(flags & GPIOF_INIT_HIGH) ? 1 : 0);
 
 
+	if (err)
+		gpio_free(gpio);
+
 	return err;
 	return err;
 }
 }
 EXPORT_SYMBOL_GPL(gpio_request_one);
 EXPORT_SYMBOL_GPL(gpio_request_one);