Commit f686a2b5 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Krzysztof Kozlowski
Browse files

pinctrl: samsung: Fix irq handling if an error occurs in exynos_irq_demux_eint16_31()



chained_irq_enter(() should be paired with a corresponding
chained_irq_exit().

Here, if clk_enable() fails, a early return occurs and chained_irq_exit()
is not called.

Add a new label and a goto for fix it.

Fixes: f9c74474 ("pinctrl: samsung: support a bus clock")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: default avatarAndré Draszik <andre.draszik@linaro.org>
Link: https://lore.kernel.org/r/f148d823acfb3326a115bd49a0eed60f2345f909.1731844995.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
parent 40384c84
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -636,7 +636,7 @@ static void exynos_irq_demux_eint16_31(struct irq_desc *desc)
		if (clk_enable(b->drvdata->pclk)) {
			dev_err(b->gpio_chip.parent,
				"unable to enable clock for pending IRQs\n");
			return;
			goto out;
		}
	}

@@ -652,6 +652,7 @@ static void exynos_irq_demux_eint16_31(struct irq_desc *desc)
	if (eintd->nr_banks)
		clk_disable(eintd->banks[0]->drvdata->pclk);

out:
	chained_irq_exit(chip, desc);
}