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

Commit 73c13c83 authored by Phil Reid's avatar Phil Reid Committed by Linus Walleij
Browse files

gpio: gpio-altera: Remove gpiochip on probe failure.



On failure to setup the irq altera_gpio_probe would return an error
but not go to cleanup. This resulted in kernel fault
"Unable to handle kernel paging request at virtual address xxxxxxxx"
later on in of_gpiochip_find_and_xlate.

Signed-off-by: default avatarPhil Reid <preid@electromag.com.au>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 92e963f5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -312,8 +312,8 @@ static int altera_gpio_probe(struct platform_device *pdev)
		handle_simple_irq, IRQ_TYPE_NONE);

	if (ret) {
		dev_info(&pdev->dev, "could not add irqchip\n");
		return ret;
		dev_err(&pdev->dev, "could not add irqchip\n");
		goto teardown;
	}

	gpiochip_set_chained_irqchip(&altera_gc->mmchip.gc,
@@ -326,6 +326,7 @@ static int altera_gpio_probe(struct platform_device *pdev)
skip_irq:
	return 0;
teardown:
	of_mm_gpiochip_remove(&altera_gc->mmchip);
	pr_err("%s: registration failed with status %d\n",
		node->full_name, ret);