We can deliver certain interrupts, notably MSIX, from atomic context. Here's an untested patch to do this (compiled only). Changes from v2: Don't inject broadcast interrupts directly Changes from v1: Tried to address comments from v1, except unifying with kvm_set_irq: passing flags to it looks too ugly. Added a comment. Jan, you said you can test this? Michael S. Tsirkin (2): kvm: add kvm_set_irq_inatomic kvm: deliver msi interrupts from irq handler include/linux/kvm_host.h | 1 + virt/kvm/assigned-dev.c | 36 +++++++++++++++------ virt/kvm/irq_comm.c | 83 +++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 98 insertions(+), 22 deletions(-) -- MST -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html