]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commit
ppc: avoid QEMU IRQ lock inversion
authorStefan Reinauer <stefan.reinauer@coreboot.org>
Mon, 25 May 2026 17:47:45 +0000 (10:47 -0700)
committerStefan Reinauer <stefan.reinauer@coreboot.org>
Tue, 2 Jun 2026 23:49:08 +0000 (16:49 -0700)
commitc4e21a4ad81b8d1457f02a4a29fa5bc55fcddc5c
tree4eb0221bfe46df86aa78d4218e71d4eac2fb51a5
parent972c719a455c128a584f78df350c9e1043f416c0
ppc: avoid QEMU IRQ lock inversion

QEMU 10 and newer take the BQL inside ppc_set_irq(). The external
interrupt path can call into QEMU while still holding the UAE PPC
spinlock.

That can deadlock if the main thread waits for QEMU BQL while the
QEMU CPU thread waits for the UAE spinlock.

Use the release-spinlock path for external interrupt injection. This
matches the ordering used for QEMU memory mapping and state changes.
ppc/ppc.cpp