]> www.infradead.org Git - users/jedix/linux-maple.git/commit
genirq/devres: Don't free interrupt which is not managed by devres
authorZijun Hu <quic_zijuhu@quicinc.com>
Fri, 18 Oct 2024 12:08:25 +0000 (20:08 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 24 Oct 2024 09:20:06 +0000 (11:20 +0200)
commit2396eefa075a31884d3336e1e94db47a0bd2a456
tree8388bf0938b8e83e14faa61b4d0fd817a88c71d2
parentbc88d44bd7e45b992cf8c2c2ffbc7bb3e24db4a7
genirq/devres: Don't free interrupt which is not managed by devres

If devres_destroy() does not find a matching devres entry, then
devm_free_irq() emits a warning and tries to free the interrupt.

That's wrong as devm_free_irq() should only undo what devm_request_irq()
set up.

Replace devres_destroy() with a call to devres_release() which only invokes
the release function (free_irq()) in case that a matching devres entry was
found.

[ tglx: Massaged change log ]

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20241018-devres_kernel_fix-v2-1-08918ae84982@quicinc.com
kernel/irq/devres.c