gpiolib: Move error message out of a spinlock
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 30 Mar 2022 14:59:10 +0000 (17:59 +0300)
committerBartosz Golaszewski <brgl@bgdev.pl>
Sat, 9 Apr 2022 20:36:03 +0000 (22:36 +0200)
An error path is a slow path, no need to block other CPUs
when printing error messages.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpiolib.c

index 3ffe7b6..1e4aa35 100644 (file)
@@ -288,7 +288,6 @@ static int gpiodev_add_to_list(struct gpio_device *gdev)
                }
        }
 
-       dev_err(&gdev->dev, "GPIO integer space overlap, cannot add chip\n");
        return -EBUSY;
 }
 
@@ -727,6 +726,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
        ret = gpiodev_add_to_list(gdev);
        if (ret) {
                spin_unlock_irqrestore(&gpio_lock, flags);
+               chip_err(gc, "GPIO integer space overlap, cannot add chip\n");
                goto err_free_label;
        }