From: Bartosz Golaszewski Date: Tue, 5 Mar 2024 18:24:34 +0000 (+0100) Subject: Merge tag 'v6.8-rc7' into gpio/for-next X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=e9c717bee8f109ec5f708297d2cc9d8b59348855;p=linux.git Merge tag 'v6.8-rc7' into gpio/for-next Linux 6.8-rc7 --- e9c717bee8f109ec5f708297d2cc9d8b59348855 diff --cc drivers/gpio/gpiolib.c index 6ea71b72c19a6,75be4a3ca7f84..e2e583b402072 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@@ -1054,23 -997,18 +1054,23 @@@ 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_cleanup_desc_srcu: + for (i = 0; i < gdev->ngpio; i++) + cleanup_srcu_struct(&gdev->descs[i].srcu); err_free_gpiochip_mask: - gpiochip_remove_pin_ranges(gc); gpiochip_free_valid_mask(gc); +err_cleanup_gdev_srcu: + cleanup_srcu_struct(&gdev->srcu); err_remove_from_list: - spin_lock_irqsave(&gpio_lock, flags); - list_del(&gdev->list); - spin_unlock_irqrestore(&gpio_lock, flags); + scoped_guard(mutex, &gpio_devices_lock) + list_del_rcu(&gdev->list); + synchronize_srcu(&gpio_devices_srcu); if (gdev->dev.release) { /* release() has been registered by gpiochip_setup_dev() */ gpio_device_put(gdev);