This patch series removes all uses of kvm_irqchip_in_kernel() from architecture-independent code, by creating a set of more specific functions instead to test for the particular aspects of behaviour that the calling code is actually interested in.
The uses in x86-specific code could in theory be further broken down into kvm_ioapic(), kvm_pit(), etc, but I leave that for one of the x86 maintainers if they think it's worthwhile. Changes v1->v2: * more blank lines round kvm.h doc comments / macros * 1: fn name changed to: kvm_async_interrupts_enabled() (and corresponding bool is now kvm_async_interrupts_allowed, so we are consistent about the enabled/allowed convention) * 2: fn name changed to: kvm_set_irq() * 3: fix return type of kvm_allows_irq0_override() to bool * 5 (and new patch 6): split out separate kvm_gsi_routing_enabled() check for use in kvm_irqchip_add_msi_route() Peter Maydell (7): kvm: Decouple 'async interrupt delivery' from 'kernel irqchip' kvm: Rename kvm_irqchip_set_irq() to kvm_set_irq() kvm: Move kvm_allows_irq0_override() to target-i386, fix return type kvm: Decouple 'irqfds usable' from 'kernel irqchip' kvm: Decouple 'MSI routing via irqfds' from 'kernel irqchip' kvm: Decouple 'GSI routing' from 'kernel irqchip' kvm: Add documentation comment for kvm_irqchip_in_kernel() cpus.c | 3 +- hw/kvm/i8259.c | 2 +- hw/kvm/ioapic.c | 2 +- hw/pc.c | 1 + hw/virtio-pci.c | 4 +- kvm-all.c | 25 ++++++++++-------- kvm-stub.c | 9 +++--- kvm.h | 60 ++++++++++++++++++++++++++++++++++++++++++-- target-i386/Makefile.objs | 1 + target-i386/kvm-stub.c | 18 +++++++++++++ target-i386/kvm.c | 13 +++++++++ target-i386/kvm_i386.h | 16 ++++++++++++ 12 files changed, 130 insertions(+), 24 deletions(-) create mode 100644 target-i386/kvm-stub.c create mode 100644 target-i386/kvm_i386.h -- 1.7.5.4