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 Original line 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
#ifdef CONFIG_PINCTRL
	INIT_LIST_HEAD(&chip->pin_ranges);
	INIT_LIST_HEAD(&chip->pin_ranges);
#endif
#endif


	of_gpiochip_add(chip);
	of_gpiochip_add(chip);


unlock:
	spin_unlock_irqrestore(&gpio_lock, flags);

	if (status)
	if (status)
		goto fail;
		goto fail;


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


	return 0;
	return 0;

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