| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] [PATCH] Fix legacy irq allocation issue
 
Jan Beulich wrote:
>>>> "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx> 19.06.09 04:03 >>>
>> When try to assign vector for irq, we should not assign
> vector for legacy irq, which has fixed mapped irq<->vector
> relationship. 
> 
> What code path does get us there?
> 
>> --- a/xen/arch/x86/irq.c    Sun Jun 14 23:12:24 2009 +0800
>> +++ b/xen/arch/x86/irq.c    Wed Jun 17 08:51:43 2009 +0800
>> @@ -83,6 +83,12 @@ int assign_irq_vector(int irq)
>>     BUG_ON(irq >= nr_irqs && irq != AUTO_ASSIGN_IRQ);
>> 
>>     spin_lock(&vector_lock);
>> +
>> +    if ((irq != AUTO_ASSIGN_IRQ) && !IO_APIC_IRQ(irq)) +    {
>> +        spin_unlock(&vector_lock);
>> +        return LEGACY_VECTOR(irq);
>> +    }
> 
> If this is really needed, then why not simply exchange the following
> uses of IO_APIC_VECTOR() to irq_to_vector(), which already properly
> considers legacy vectors? 
Aha, yes. I should use that.
This is needed if dom0 try to assign a vector to legacy irq. I find this when 
help debugging one system. I don't have the broken system, so I have no idea 
why dom0 will try to assign vector to legacy irq. But from API point of view, I 
think this check is needed.
 
--jyh
> 
>> 
>>     if ((irq != AUTO_ASSIGN_IRQ) && (IO_APIC_VECTOR(irq) > 0)) {
>>         spin_unlock(&vector_lock);
> 
> Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |