[PATCH] pinctrl: samsung: Fix irq handling if an error occurs in exynos_irq_demux_eint16_31()
Christophe JAILLET
christophe.jaillet at wanadoo.fr
Mon Nov 18 12:40:57 PST 2024
Le 18/11/2024 à 10:40, André Draszik a écrit :
> On Sun, 2024-11-17 at 13:03 +0100, Christophe JAILLET wrote:
>> 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: f9c744747973 ("pinctrl: samsung: support a bus clock")
>> Signed-off-by: Christophe JAILLET <christophe.jaillet at wanadoo.fr>
>> ---
>> Compile tested only.
>>
>> Review with care, irq handling is sometimes tricky...
>
> Well spotted, thanks.
>
> It looks like there is a similar problem in exynos_irq_request_resources()
> in same file. It should likely call gpiochip_unlock_as_irq() if clk_enable()
> failed.
Also wondering if it is needed in exynos_irq_release_resources() if
clk_enable() fails and we early return.
I don't know how these callbacks are used and if we could dead-lock in
such a situation.
What do you think?
CJ
>
> Care to fix that as well?
>
> That said,
>
> Reviewed-by: André Draszik <andre.draszik at linaro.org>
>
>
> Cheers,
> Andre'
>
>
>
More information about the linux-arm-kernel
mailing list