]> git.proxmox.com Git - qemu.git/commit
kvm: Fix IRQ injection into full queue
authorJan Kiszka <jan.kiszka@web.de>
Sat, 30 May 2009 08:01:45 +0000 (10:01 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 16 Jun 2009 22:46:58 +0000 (17:46 -0500)
commit80de8ace664689f2ba1eae307bb8d48abc343063
tree411fa33c9015cc7cf72d2c78668aa561ef01ec69
parentea0c91a0afa73a942e95eafcceae0d26022d3715
kvm: Fix IRQ injection into full queue

User space may only inject interrupts during kvm_arch_pre_run if
ready_for_interrupt_injection is set in kvm_run. But that field is
updated on exit from KVM_RUN, so we must ensure that we enter the
kernel after potentially queuing an interrupt, otherwise we risk to
loose one - like it happens with the current code against latest
kernel modules (since kvm-86) that started to queue only a single
interrupt.

Fix the problem by reordering kvm_cpu_exec.

Credits go to Gleb Natapov for analyzing the issue in details.

(cherry picked from commit 8c14c17395809dfb2b20bd3598e067d2c5af7dc4)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
kvm-all.c