On Tue, May 03, 2022 at 10:14:24PM +0100, Marc Zyngier wrote: > When adding support for the slightly wonky Apple M1, we had to > populate ID_AA64PFR0_EL1.GIC==1 to present something to the guest, > as the HW itself doesn't advertise the feature. > > However, we gated this on the in-kernel irqchip being created. > This causes some trouble for QEMU, which snapshots the state of > the registers before creating a virtual GIC, and then tries to > restore these registers once the GIC has been created. Obviously, > between the two stages, ID_AA64PFR0_EL1.GIC has changed value, > and the write fails. > > The fix is to actually emulate the HW, and always populate the > field if the HW is capable of it. > > Fixes: 562e530fd770 ("KVM: arm64: Force ID_AA64PFR0_EL1.GIC=1 when exposing a virtual GICv3") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx>