gpio: mpc8xxx: Add platform device to gpiochip->parent
diff mbox series

Message ID HK0PR01MB3521489269F76467DFD7843FFA450@HK0PR01MB3521.apcprd01.prod.exchangelabs.com
State New
Headers show
Series
  • gpio: mpc8xxx: Add platform device to gpiochip->parent
Related show

Commit Message

Johnson CH Chen (陳昭勳) Nov. 26, 2019, 6:51 a.m. UTC
Dear Linus Walleij,

In old kernels, some APIs still try to use parent->of_node from struct gpio_chip,
and it could be resulted in kernel panic because parent is NULL. Adding platform
device to gpiochip->parent can fix this problem.

Signed-off-by: Johnson Chen <johnsonch.chen@moxa.com>
Link: https://patchwork.kernel.org/patch/11234609

---
 drivers/gpio/gpio-mpc8xxx.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Linus Walleij Nov. 28, 2019, 1:39 p.m. UTC | #1
Hi Johnson,

On Tue, Nov 26, 2019 at 7:51 AM Johnson CH Chen (陳昭勳)
<JohnsonCH.Chen@moxa.com> wrote:

> In old kernels, some APIs still try to use parent->of_node from struct gpio_chip,
> and it could be resulted in kernel panic because parent is NULL. Adding platform
> device to gpiochip->parent can fix this problem.
>
> Signed-off-by: Johnson Chen <johnsonch.chen@moxa.com>
> Link: https://patchwork.kernel.org/patch/11234609

Patch applied for fixes!

Yours,
Linus Walleij

Patch
diff mbox series

diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 16a47de29c94..161e3ff4106a 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -346,6 +346,7 @@  static int mpc8xxx_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	gc = &mpc8xxx_gc->gc;
+	gc->parent = &pdev->dev;
 
 	if (of_property_read_bool(np, "little-endian")) {
 		ret = bgpio_init(gc, &pdev->dev, 4,