irqchip/gic-v3: Relax polling of GIC{R,D}_CTLR.RWP
authorMarc Zyngier <maz@kernel.org>
Tue, 5 Apr 2022 18:38:57 +0000 (19:38 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 4 May 2022 14:38:55 +0000 (15:38 +0100)
commit63f13483f0689a4de20fbfd847866ab39bec736f
treea1cd74945474d5581409ee50635000b93da0aec1
parenta837ed362e7070d48b6064138d3b61eb75eb9fd9
irqchip/gic-v3: Relax polling of GIC{R,D}_CTLR.RWP

Recent work on the KVM GIC emulation has revealed that the GICv3
driver is a bit RWP-happy, as it polls this bit for each and
every write MMIO access involving a single interrupt.

As it turns out, polling RWP is only required when:
- Disabling an SGI, PPI or SPI
- Disabling LPIs at the redistributor level
- Disabling groups
- Enabling ARE
- Dealing with DPG*

Simplify the driver by removing all the other instances of RWP
polling, and add the one that was missing when enabling the distributor
(as that's where we set ARE).

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220405183857.205960-4-maz@kernel.org
drivers/irqchip/irq-gic-v3.c