In case XICS KVM setup fails, depending on the in-kernel irqchip being required or not, QEMU used to exit or fall back to emulated XICS, and never try to setup XICS KVM again for the machine lifetime.
This is no longer the case with the "dual" interrupt controller mode of the spapr machine: QEMU will try again to setup KVM XICS each time the VM is reset. This calls for proper rollback on the XICS KVM setup error path. That's what that series does. The first patches are preparatory cleanup. -- Greg --- Greg Kurz (6): xics/spapr: Drop unused function declaration xics/spapr: Rename xics_kvm_init() xics/kvm: Skip rollback when KVM XICS is absent xics/kvm: Always use local_err in xics_kvm_init() xics/kvm: Add error propagation to ic*_set_kvm_state() functions xics/kvm: Add proper rollback to xics_kvm_init() hw/intc/xics.c | 39 ++++++++++++++++++++++--- hw/intc/xics_kvm.c | 68 +++++++++++++++++++++++++------------------ hw/ppc/spapr_irq.c | 2 + include/hw/ppc/xics.h | 6 ++-- include/hw/ppc/xics_spapr.h | 3 +- 5 files changed, 78 insertions(+), 40 deletions(-)