diff options
| -rw-r--r-- | arch/i386/kernel/mpparse.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c index af917f609c7d..ce838abb27d8 100644 --- a/arch/i386/kernel/mpparse.c +++ b/arch/i386/kernel/mpparse.c | |||
| @@ -1116,7 +1116,15 @@ int mp_register_gsi (u32 gsi, int edge_level, int active_high_low) | |||
| 1116 | */ | 1116 | */ |
| 1117 | int irq = gsi; | 1117 | int irq = gsi; |
| 1118 | if (gsi < MAX_GSI_NUM) { | 1118 | if (gsi < MAX_GSI_NUM) { |
| 1119 | gsi = pci_irq++; | 1119 | if (gsi > 15) |
| 1120 | gsi = pci_irq++; | ||
| 1121 | #ifdef CONFIG_ACPI_BUS | ||
| 1122 | /* | ||
| 1123 | * Don't assign IRQ used by ACPI SCI | ||
| 1124 | */ | ||
| 1125 | if (gsi == acpi_fadt.sci_int) | ||
| 1126 | gsi = pci_irq++; | ||
| 1127 | #endif | ||
| 1120 | gsi_to_irq[irq] = gsi; | 1128 | gsi_to_irq[irq] = gsi; |
| 1121 | } else { | 1129 | } else { |
| 1122 | printk(KERN_ERR "GSI %u is too high\n", gsi); | 1130 | printk(KERN_ERR "GSI %u is too high\n", gsi); |
