From: Jan Kiszka Date: Tue, 15 Mar 2011 11:26:19 +0000 (+0100) Subject: kvm: x86: Do not leave halt if interrupts are disabled X-Git-Tag: v0.15.0-rc0~684^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4601f7b04c63072c73870d4f4db2a5c5ad5ad8d2;p=thirdparty%2Fqemu.git kvm: x86: Do not leave halt if interrupts are disabled When an external interrupt is pending but IF is cleared, we must not leave the halt state prematurely. Signed-off-by: Jan Kiszka Signed-off-by: Marcelo Tosatti --- diff --git a/target-i386/kvm.c b/target-i386/kvm.c index f7995bd8777..3a07fceb2a9 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -1590,7 +1590,9 @@ int kvm_arch_process_async_events(CPUState *env) return 0; } - if (env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI)) { + if (((env->interrupt_request & CPU_INTERRUPT_HARD) && + (env->eflags & IF_MASK)) || + (env->interrupt_request & CPU_INTERRUPT_NMI)) { env->halted = 0; } if (env->interrupt_request & CPU_INTERRUPT_INIT) {