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

Commit 3bae4811 authored by Zhangfei Gao's avatar Zhangfei Gao Committed by Linus Walleij
Browse files

gpiolib: remove warnning of allocations with IRQs disabled



Move of_gpiochip_add outof spin_lock, since kzalloc inside
of_gpiochip_add -> of_gpiochip_add_pin_range -> gpiochip_add_pin_range -> kzalloc

WARNING: at kernel/lockdep.c:2740 lockdep_trace_alloc+0xf8/0xfc()
DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))

Signed-off-by: default avatarZhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 61e3884e
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1214,15 +1214,14 @@ int gpiochip_add(struct gpio_chip *chip)
		}
	}

	spin_unlock_irqrestore(&gpio_lock, flags);

#ifdef CONFIG_PINCTRL
	INIT_LIST_HEAD(&chip->pin_ranges);
#endif

	of_gpiochip_add(chip);

unlock:
	spin_unlock_irqrestore(&gpio_lock, flags);

	if (status)
		goto fail;

@@ -1235,6 +1234,9 @@ int gpiochip_add(struct gpio_chip *chip)
		chip->label ? : "generic");

	return 0;

unlock:
	spin_unlock_irqrestore(&gpio_lock, flags);
fail:
	/* failures here can mean systems won't boot... */
	pr_err("gpiochip_add: gpios %d..%d (%s) failed to register\n",