Module: xenomai-3
Branch: stable-3.0.x
Commit: 144746346a118ac368935b8b9ea14f4677cf8e96
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=144746346a118ac368935b8b9ea14f4677cf8e96

Author: Philippe Gerum <[email protected]>
Date:   Thu Apr 19 10:28:40 2018 +0200

drivers/gpio: core: lock gpio_chip list while scanning for removal

---

 kernel/drivers/gpio/gpio-core.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c
index a27c9ee..3ce73db 100644
--- a/kernel/drivers/gpio/gpio-core.c
+++ b/kernel/drivers/gpio/gpio-core.c
@@ -597,12 +597,18 @@ void rtdm_gpiochip_remove_of(int type)
        if (!realtime_core_enabled())
                return;
 
+       mutex_lock(&chip_lock);
+
        list_for_each_entry_safe(rgc, n, &rtdm_gpio_chips, next) {
                if (rgc->driver.profile_info.subclass_id == type) {
+                       mutex_unlock(&chip_lock);
                        rtdm_gpiochip_remove(rgc);
                        kfree(rgc);
+                       mutex_lock(&chip_lock);
                }
        }
+
+       mutex_unlock(&chip_lock);
 }
 EXPORT_SYMBOL_GPL(rtdm_gpiochip_remove_of);
 


_______________________________________________
Xenomai-git mailing list
[email protected]
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to