Skip to content

Commit 65d5727

Browse files
Chen NiChristophe Leroy (CS GROUP)
authored andcommitted
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>
1 parent 0d069bb commit 65d5727

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

drivers/soc/fsl/qe/qe_ports_ic.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ static int qepic_probe(struct platform_device *pdev)
114114
if (!data->host)
115115
return -ENODEV;
116116

117-
irq_set_handler_data(irq, data);
118-
irq_set_chained_handler(irq, qepic_cascade);
117+
irq_set_chained_handler_and_data(irq, qepic_cascade, data);
119118

120119
return 0;
121120
}

0 commit comments

Comments
 (0)