gpiolib: Convert to use guard()() for gpio_machine_hogs_mutex
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 16 Apr 2025 09:55:10 +0000 (12:55 +0300)
committerBartosz Golaszewski <brgl@bgdev.pl>
Thu, 17 Apr 2025 13:22:05 +0000 (15:22 +0200)
The driver uses guard()()/scoped_guard() for the rest of the synchronisation
calls. Convert to use the same for gpio_machine_hogs_mutex.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20250416095645.2027695-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpiolib.c

index 40ae0e09fb9f0a98ffd3b8911cdfc388ba1d2d45..e2716e20b0e476c8d355292a4809a01b40a736b9 100644 (file)
@@ -888,14 +888,12 @@ static void machine_gpiochip_add(struct gpio_chip *gc)
 {
        struct gpiod_hog *hog;
 
-       mutex_lock(&gpio_machine_hogs_mutex);
+       guard(mutex)(&gpio_machine_hogs_mutex);
 
        list_for_each_entry(hog, &gpio_machine_hogs, list) {
                if (!strcmp(gc->label, hog->chip_label))
                        gpiochip_machine_hog(gc, hog);
        }
-
-       mutex_unlock(&gpio_machine_hogs_mutex);
 }
 
 static void gpiochip_setup_devs(void)
@@ -4439,7 +4437,7 @@ void gpiod_add_hogs(struct gpiod_hog *hogs)
 {
        struct gpiod_hog *hog;
 
-       mutex_lock(&gpio_machine_hogs_mutex);
+       guard(mutex)(&gpio_machine_hogs_mutex);
 
        for (hog = &hogs[0]; hog->chip_label; hog++) {
                list_add_tail(&hog->list, &gpio_machine_hogs);
@@ -4453,8 +4451,6 @@ void gpiod_add_hogs(struct gpiod_hog *hogs)
                if (gdev)
                        gpiochip_machine_hog(gpio_device_get_chip(gdev), hog);
        }
-
-       mutex_unlock(&gpio_machine_hogs_mutex);
 }
 EXPORT_SYMBOL_GPL(gpiod_add_hogs);
 
@@ -4462,10 +4458,10 @@ void gpiod_remove_hogs(struct gpiod_hog *hogs)
 {
        struct gpiod_hog *hog;
 
-       mutex_lock(&gpio_machine_hogs_mutex);
+       guard(mutex)(&gpio_machine_hogs_mutex);
+
        for (hog = &hogs[0]; hog->chip_label; hog++)
                list_del(&hog->list);
-       mutex_unlock(&gpio_machine_hogs_mutex);
 }
 EXPORT_SYMBOL_GPL(gpiod_remove_hogs);