gpio: fix resource unwinding order in error path
[ Upstream commit ec5c54a9d3c4f9c15e647b049fea401ee5258696 ] Hogs are added *after* ACPI so should be removed *before* in error path. Fixes: a411e81e61df ("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
eb20bd7408
commit
da0f01b32a
1 changed files with 4 additions and 4 deletions
|
@ -733,11 +733,11 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
|
|||
|
||||
ret = gpiochip_irqchip_init_valid_mask(gc);
|
||||
if (ret)
|
||||
goto err_remove_acpi_chip;
|
||||
goto err_free_hogs;
|
||||
|
||||
ret = gpiochip_irqchip_init_hw(gc);
|
||||
if (ret)
|
||||
goto err_remove_acpi_chip;
|
||||
goto err_remove_irqchip_mask;
|
||||
|
||||
ret = gpiochip_add_irqchip(gc, lock_key, request_key);
|
||||
if (ret)
|
||||
|
@ -762,11 +762,11 @@ err_remove_irqchip:
|
|||
gpiochip_irqchip_remove(gc);
|
||||
err_remove_irqchip_mask:
|
||||
gpiochip_irqchip_free_valid_mask(gc);
|
||||
err_remove_acpi_chip:
|
||||
err_free_hogs:
|
||||
gpiochip_free_hogs(gc);
|
||||
acpi_gpiochip_remove(gc);
|
||||
gpiochip_remove_pin_ranges(gc);
|
||||
err_remove_of_chip:
|
||||
gpiochip_free_hogs(gc);
|
||||
of_gpiochip_remove(gc);
|
||||
err_free_gpiochip_mask:
|
||||
gpiochip_free_valid_mask(gc);
|
||||
|
|
Loading…
Reference in a new issue