Re: [PATCH] fix userspace irqchip.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 03, 2009 at 07:41:00PM -0400, Glauber Costa wrote:
> It is broken since main loop reorganization. (6185d8b6)
> 
What is broken? Boots WindowsXp for me here.

> Problem is that we, the emulator, has nothing to do with the CPU flags. has_work()
> should not depend on that at all.
IF_MASK flags is set into env->eflags on each exit by function just
above kvm_arch_has_work() and contains valid and relevant information.
The check your are removing should be there. It ensures that interrupts
are ignored if they are blocked by vcpu.

> 
> Signed-off-by: Glauber Costa <glommer@xxxxxxxxxx>
> CC: Gleb Natapov <gleb@xxxxxxxxxx>
> ---
>  qemu-kvm-x86.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
> index f80d82b..66ed6b5 100644
> --- a/qemu-kvm-x86.c
> +++ b/qemu-kvm-x86.c
> @@ -1393,9 +1393,8 @@ void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
>  
>  int kvm_arch_has_work(CPUState *env)
>  {
> -    if (((env->interrupt_request & CPU_INTERRUPT_HARD) &&
> -	 (env->eflags & IF_MASK)) ||
> -	(env->interrupt_request & CPU_INTERRUPT_NMI))
> +    if (((env->interrupt_request & CPU_INTERRUPT_HARD) || 
> +	(env->interrupt_request & CPU_INTERRUPT_NMI)))
>  	return 1;
>      return 0;
>  }
> -- 
> 1.6.2.2

--
			Gleb.
--
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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux