Re: [tip:x86/apic] x86: Fix out of order gsi -- add remap_ioapic_gsi_to_irq()

From: Yinghai Lu
Date: Sat Feb 27 2010 - 18:00:10 EST


On 02/27/2010 02:18 PM, Eric W. Biederman wrote:
> Yinghai Lu <yinghai@xxxxxxxxxx> writes:
>
>> On 02/27/2010 01:30 PM, Eric W. Biederman wrote:
>> then will have all irq_desc for ioapic stay with BSP node.
>
> This is what I am thinking....
>
> static void __init setup_IO_APIC_irqs(void)
> {
> int apic_id, pin, idx, irq;
> int notcon = 0;
> struct irq_desc *desc;
> struct irq_cfg *cfg;
> int node = cpu_to_node(boot_cpu_id);
>
> apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n");
>
> for(apic_id = 0; apic_id < nr_ioapics; apic_id++) {
> for (pin = 0; pin < nr_ioapic_registers[apic_id]; pin++) {
> idx = find_irq_entry(apic_id, pin, mp_INT);
> if (idx == -1) {
> if (!notcon) {
> notcon = 1;
> apic_printk(APIC_VERBOSE,
> KERN_DEBUG " %d-%d",
> mp_ioapics[apic_id].apicid, pin);
> } else
> apic_printk(APIC_VERBOSE, " %d-%d",
> mp_ioapics[apic_id].apicid, pin);
> continue;
> }
> if (notcon) {
> apic_printk(APIC_VERBOSE,
> " (apicid-pin) not connected\n");
> notcon = 0;
> }
>
> irq = pin_2_irq(idx, apic_id, pin);
>
> + if ((apic_id > 0) && (irq > 16))
> + continue;
looks right.

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/