]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
soc: fsl: qe: qe_ports_ic: Consolidate chained IRQ handler install/remove
authorChen Ni <nichen@iscas.ac.cn>
Mon, 19 Jan 2026 05:57:15 +0000 (13:57 +0800)
committerChristophe Leroy (CS GROUP) <chleroy@kernel.org>
Wed, 21 Jan 2026 07:55:37 +0000 (08:55 +0100)
commit65d5727645acbc019fd17d47f47b743eb116ff14
treed41a5d55042677e185b7d22d37a892dd54a14c18
parent0d069bb381839ba252ecca4031f7eb6f2fc72ab4
soc: fsl: qe: qe_ports_ic: Consolidate chained IRQ handler install/remove

The driver currently sets the handler data and the chained handler in
two separate steps. This creates a theoretical race window where an
interrupt could fire after the handler is set but before the data is
assigned, leading to a NULL pointer dereference.

Replace the two calls with irq_set_chained_handler_and_data() to set
both the handler and its data atomically under the irq_desc->lock.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Link: https://lore.kernel.org/r/20260119055715.889001-1-nichen@iscas.ac.cn
Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
drivers/soc/fsl/qe/qe_ports_ic.c