[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