RE: [patch 1/2] Incorrect PCI interrupt assignment on ES7000 for platform GSI

From: Protasevich, Natalie
Date: Mon Sep 13 2004 - 22:40:46 EST


>> diff -puN arch/i386/kernel/acpi/boot.c~mypatch
arch/i386/kernel/acpi/boot.c
>> --- linux/arch/i386/kernel/acpi/boot.c~mypatch 2004-09-13
14:08:21.192015024 -0600
>> +++ linux-root/arch/i386/kernel/acpi/boot.c 2004-09-13
14:10:51.457171248 -0600
>> @@ -442,6 +442,7 @@ int acpi_gsi_to_irq(u32 gsi, unsigned in
unsigned
>> int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
{
>> unsigned int irq;
>> + unsigned int plat_gsi;
>>
>> #ifdef CONFIG_PCI
>> /*
>> @@ -463,10 +464,10 @@ unsigned int acpi_register_gsi(u32 gsi,
>>
>> #ifdef CONFIG_X86_IO_APIC
>> if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) {
>> - mp_register_gsi(gsi, edge_level, active_high_low);
>> + plat_gsi = mp_register_gsi(gsi, edge_level,
active_high_low);
>> }
>> #endif
>> - acpi_gsi_to_irq(gsi, &irq);
>> + acpi_gsi_to_irq(plat_gsi, &irq);
>> return irq;
>> }
>> EXPORT_SYMBOL(acpi_register_gsi);
>
> Looking at that, won't that cause problems if we don't have IOAPIC?
> Then you end up using an undefined value as GSI.

Oops, you are right! thanks for catching this.
I guess it would be OK to do:

int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) {
unsigned int irq;
+ unsigned int plat_gsi = gsi;


--Natalie
-
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/