summaryrefslogtreecommitdiff
path: root/scripts/stackusage
diff options
context:
space:
mode:
authorBiju Das <biju.das.jz@bp.renesas.com>2026-08-18 12:09:33 +0100
committerThomas Gleixner <tglx@kernel.org>2026-08-19 21:40:13 +0200
commit50b10bd0c2d721ad38abd1abe3acdefb6caa0944 (patch)
treef827a0518c5636abcc05357f6718d8d59a15830f /scripts/stackusage
parent59e6295fac26b8e85c1ea859cdd89fa1e47519d7 (diff)
downloadlinux-50b10bd0c2d721ad38abd1abe3acdefb6caa0944.tar.gz
linux-50b10bd0c2d721ad38abd1abe3acdefb6caa0944.zip
irqchip/renesas-rzg2l: Fix loss of interrupt
rzg2l_clear_irq_int() and rzg2l_clear_tint_int() perform a read-modify-write on the ISCR/TSCR status registers to clear the bit for the interrupt just handled. Since these registers are write-0-to-clear per bit, this is racy: If another interrupt's status bit gets set between the read and the write, that bit is written back as 0 by the software-constructed value, clearing an interrupt that hasn't been serviced yet and losing it. This can be reproduced by triggering multiple interrupts at once, e.g.: gpioset -c gpiochip0 355=0 353=0 328=0 352=0 Fix this by writing back only the bit being cleared, with all other bits set to 1, instead of read-modify-writing the whole register. Since 1-bits are left unchanged by hardware, concurrently-set status bits for other interrupts are preserved. Fixes: 3fed09559cd8 ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver") Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260818110937.5816-1-biju.das.jz@bp.renesas.com
Diffstat (limited to 'scripts/stackusage')
0 files changed, 0 insertions, 0 deletions