gpio: fix gpio leak in gpiochip_add error path
PATCH 1/1 gpio: fix gpio leak in gpiochip_add error path
Make sure to free any hogged gpios on errors in gpiochip_add.
Also move all forward declarations to the top of the file.
Fixes f625d4601759 ("gpio: add GPIO hogging mechanism")
Signed-off-by Johan Hovold <[email protected]>
---
Here's another fix for 4.1.
Johan
drivers/gpio/gpiolib.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
drivers/gpio/gpiolib.c +6 -4
@@ -53,6 +53,11 @@ static DEFINE_MUTEX(gpio_lookup_lock);static LIST_HEAD (gpio_lookup_list);LIST_HEAD (gpio_chips); + +static void gpiochip_free_hogs (struct gpio_chip *chip); +static void gpiochip_irqchip_remove (struct gpio_chip *gpiochip); + +static inline void desc_set_label (struct gpio_desc *d,const char *label) { d->label = label;
@@ -297,6 +302,7 @@ int gpiochip_add(struct gpio_chip *chip) err_remove_chip:acpi_gpiochip_remove (chip); +gpiochip_free_hogs (chip);of_gpiochip_remove (chip);spin_lock_irqsave (&gpio_lock, flags);list_del (&chip->list);
@@ -313,10 +319,6 @@ err_free_descs: }EXPORT_SYMBOL_GPL (gpiochip_add); -/* Forward-declaration */ -static void gpiochip_irqchip_remove (struct gpio_chip *gpiochip); -static void gpiochip_free_hogs (struct gpio_chip *chip); -/** * gpiochip_remove() - unregister a gpio_chip * @chip: the chip to unregister
Signature · 1 line
2.0.5
Quoted 6 lines · Johan Hovold
Make sure to free any hogged gpios on errors in
gpiochip_add.Also move all forward declarations to the top of the file.
Fixes f625d4601759 ("gpio: add GPIO hogging mechanism")Signed-off-by Johan Hovold <[email protected]>
Reviewed-by Alexandre Courbot <[email protected]>
Quoted 6 lines · Johan Hovold
Make sure to free any hogged gpios on errors in
gpiochip_add.Also move all forward declarations to the top of the file.
Fixes f625d4601759 ("gpio: add GPIO hogging mechanism")Signed-off-by Johan Hovold <[email protected]>
Applied for fixes.
Yours,
Linus Walleij