On 2012-09-19 16:28, Gilles Chanteperdrix wrote:
> 
> Jan Kiszka wrote:
>>      for (vector = 0; vector < NR_VECTORS; ++vector) {
>> +            /* I-pipe requires initialized vector_irq for system vectors */
>> +            if (test_bit(vector, used_vectors))
>> +                    continue;
>>              irq = per_cpu(vector_irq, cpu)[vector];
>>              if (irq < 0)
>>                      continue;
> 
> This looks wrong to me: you are skipping a part a code that was setting to
> -1 vectors that were allocated but not used on this cpu.

I'm skipping only used_vectors, i.e system vectors. They will be set up
for I-pipe for that well-known reason. I'm no longer skipping to clear
IRQ vectors that are not used on the current CPU (!cpumask_test_cpu(cpu,
cfg->domain)). That is what was missing in both approaches so far.

Note: vector_free = (vector_irq == -1) && !used_vector

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to