Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad2fab36 authored by Mathias Nyman's avatar Mathias Nyman Committed by Linus Walleij
Browse files

gpiolib: Don't return -EPROBE_DEFER to sysfs, or for invalid gpios



gpios requested with invalid numbers, or gpios requested from userspace via sysfs
should not try to be deferred on failure.

Cc: stable@kernel.org
Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent c57d75c0
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -623,9 +623,11 @@ static ssize_t export_store(struct class *class,
	 */

	status = gpio_request(gpio, "sysfs");
	if (status < 0)
	if (status < 0) {
		if (status == -EPROBE_DEFER)
			status = -ENODEV;
		goto done;

	}
	status = gpio_export(gpio, true);
	if (status < 0)
		gpio_free(gpio);
@@ -1191,8 +1193,10 @@ int gpio_request(unsigned gpio, const char *label)

	spin_lock_irqsave(&gpio_lock, flags);

	if (!gpio_is_valid(gpio))
	if (!gpio_is_valid(gpio)) {
		status = -EINVAL;
		goto done;
	}
	desc = &gpio_desc[gpio];
	chip = desc->chip;
	if (chip == NULL)