Skip to content

Commit ec5c54a

Browse files
author
Bartosz Golaszewski
committed
gpio: fix resource unwinding order in error path
Hogs are added *after* ACPI so should be removed *before* in error path. Fixes: a411e81 ("gpiolib: add hogs support for machine code") Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
1 parent e4aec4d commit ec5c54a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

drivers/gpio/gpiolib.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -968,11 +968,11 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
968968

969969
ret = gpiochip_irqchip_init_valid_mask(gc);
970970
if (ret)
971-
goto err_remove_acpi_chip;
971+
goto err_free_hogs;
972972

973973
ret = gpiochip_irqchip_init_hw(gc);
974974
if (ret)
975-
goto err_remove_acpi_chip;
975+
goto err_remove_irqchip_mask;
976976

977977
ret = gpiochip_add_irqchip(gc, lock_key, request_key);
978978
if (ret)
@@ -997,11 +997,11 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
997997
gpiochip_irqchip_remove(gc);
998998
err_remove_irqchip_mask:
999999
gpiochip_irqchip_free_valid_mask(gc);
1000-
err_remove_acpi_chip:
1000+
err_free_hogs:
1001+
gpiochip_free_hogs(gc);
10011002
acpi_gpiochip_remove(gc);
10021003
gpiochip_remove_pin_ranges(gc);
10031004
err_remove_of_chip:
1004-
gpiochip_free_hogs(gc);
10051005
of_gpiochip_remove(gc);
10061006
err_free_gpiochip_mask:
10071007
gpiochip_free_valid_mask(gc);

0 commit comments

Comments
 (0)