]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commit
gpiolib: Fix of_node inconsistency
authorBiju Das <biju.das@bp.renesas.com>
Mon, 6 Aug 2018 09:48:01 +0000 (10:48 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 10 Aug 2018 21:04:27 +0000 (23:04 +0200)
commit6ff0497402ef7269ee6a72f62eb85adaa7a4768e
treeb35479da0438fc688f4fe2322d8d88797f9bdf9f
parentf8ad8aa551af812adf2ba49a554c73cc9daa8d36
gpiolib: Fix of_node inconsistency

Some platforms are not setting of_node in the driver. On these platforms
defining gpio-reserved-ranges on device tree leads to kernel crash.

It is due to some parts of the gpio core relying on the driver to set up
of_node,while other parts do themselves.This inconsistent behaviour leads
to a crash.

gpiochip_add_data_with_key() calls gpiochip_init_valid_mask() with of_node
as NULL. of_gpiochip_add() fills "of_node" and calls
of_gpiochip_init_valid_mask().

The fix is to move the assignment to chip->of_node from of_gpiochip_add()
to gpiochip_add_data_with_key().

Signed-off-by: Biju Das <biju.das@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-of.c
drivers/gpio/gpiolib.c