irqchip fixes for 5.15, take #1

- Work around a bad GIC integration on a Renesas platform, where the
  interconnect cannot deal with byte-sized MMIO accesses

- Cleanup another Renesas driver abusing the comma operator

- Fix a potential GICv4 memory leak on an error path

- Make the type of 'size' consistent with the rest of the code in
  __irq_domain_add()

- Fix a regression in the Armada 370-XP IPI path

- Fix the build for the obviously unloved goldfish-pic

- Some documentation fixes
irqchip/gic: Work around broken Renesas integration

Geert reported that the GIC driver locks up on a Renesas system
since 005c34ae4b44f085 ("irqchip/gic: Atomically update affinity")
fixed the driver to use writeb_relaxed() instead of writel_relaxed().

As it turns out, the interconnect used on this system mandates
32bit wide accesses for all MMIO transactions, even if the GIC
architecture specifically mandates for some registers to be byte
accessible. Gahhh...

Work around the issue by crudly detecting the offending system,
and falling back to an inefficient RMW+lock implementation.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/CAMuHMdV+Ev47K5NO8XHsanSq5YRMCHn2gWAQyV-q2LpJVy9HiQ@mail.gmail.com
1 file changed