Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gpio: fix resource unwinding order in error path

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>

+4 -4
+4 -4
drivers/gpio/gpiolib.c
··· 968 968 969 969 ret = gpiochip_irqchip_init_valid_mask(gc); 970 970 if (ret) 971 - goto err_remove_acpi_chip; 971 + goto err_free_hogs; 972 972 973 973 ret = gpiochip_irqchip_init_hw(gc); 974 974 if (ret) 975 - goto err_remove_acpi_chip; 975 + goto err_remove_irqchip_mask; 976 976 977 977 ret = gpiochip_add_irqchip(gc, lock_key, request_key); 978 978 if (ret) ··· 997 997 gpiochip_irqchip_remove(gc); 998 998 err_remove_irqchip_mask: 999 999 gpiochip_irqchip_free_valid_mask(gc); 1000 - err_remove_acpi_chip: 1000 + err_free_hogs: 1001 + gpiochip_free_hogs(gc); 1001 1002 acpi_gpiochip_remove(gc); 1002 1003 gpiochip_remove_pin_ranges(gc); 1003 1004 err_remove_of_chip: 1004 - gpiochip_free_hogs(gc); 1005 1005 of_gpiochip_remove(gc); 1006 1006 err_free_gpiochip_mask: 1007 1007 gpiochip_free_valid_mask(gc);