mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
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>
This commit is contained in:
parent
0d069bb381
commit
65d5727645
|
|
@ -114,8 +114,7 @@ static int qepic_probe(struct platform_device *pdev)
|
|||
if (!data->host)
|
||||
return -ENODEV;
|
||||
|
||||
irq_set_handler_data(irq, data);
|
||||
irq_set_chained_handler(irq, qepic_cascade);
|
||||
irq_set_chained_handler_and_data(irq, qepic_cascade, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user