]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
irqchip/renesas-rzg2l: Flush posted write in irq_eoi()
authorBiju Das <biju.das.jz@bp.renesas.com>
Tue, 5 Mar 2024 18:39:18 +0000 (18:39 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Apr 2024 13:28:51 +0000 (15:28 +0200)
commit9913a07850e0f89f49e08918b5953934c40b7ded
treeddc2cecdd9dce6bc9fe111572e70592a880faee0
parentc15a37e3f1620cb91fdcca8c2e4fc3c53de6c83d
irqchip/renesas-rzg2l: Flush posted write in irq_eoi()

[ Upstream commit 9eec61df55c51415409c7cc47e9a1c8de94a0522 ]

The irq_eoi() callback of the RZ/G2L interrupt chip clears the relevant
interrupt cause bit in the TSCR register by writing to it.

This write is not sufficient because the write is posted and therefore not
guaranteed to immediately clear the bit. Due to that delay the CPU can
raise the just handled interrupt again.

Prevent this by reading the register back which causes the posted write to
be flushed to the hardware before the read completes.

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@linutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/irqchip/irq-renesas-rzg2l.c