|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] KVM: Windows 64-bit troubles with user space irqchip |
Date: | Sun, 06 Feb 2011 12:26:40 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.7 |
On 02/03/2011 04:15 PM, Gleb Natapov wrote:
> > Maybe this is true for the in-kernel model, but I don't see the issue > (anymore) for the way user space works. > With patch below I can boot Windows7. diff --git a/hw/apic.c b/hw/apic.c index 146deca..fdcac88 100644 --- a/hw/apic.c +++ b/hw/apic.c @@ -600,7 +600,7 @@ int apic_get_interrupt(DeviceState *d) intno = get_highest_priority_int(s->irr); if (intno< 0) return -1; - if (s->tpr&& intno<= s->tpr) + if ((s->tpr>> 4)&& (intno>> 4)<= (s->tpr>> 4)) return s->spurious_vec& 0xff; reset_bit(s->irr, intno); set_bit(s->isr, intno);
That still allows interrupts that have higher priority than the TPR, but lower priority than interrupts in the ISR to be injected. I think we need to use the PPR here (same as apic_update_irq()).
-- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |