diff options
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 2627a81253ee..81aa73b8ecf5 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -199,7 +199,7 @@ static void acpi_register_lapic(int id, u8 enabled) | |||
199 | { | 199 | { |
200 | unsigned int ver = 0; | 200 | unsigned int ver = 0; |
201 | 201 | ||
202 | if (id >= (MAX_LOCAL_APIC-1)) { | 202 | if (id >= MAX_LOCAL_APIC) { |
203 | printk(KERN_INFO PREFIX "skipped apicid that is too big\n"); | 203 | printk(KERN_INFO PREFIX "skipped apicid that is too big\n"); |
204 | return; | 204 | return; |
205 | } | 205 | } |
@@ -1120,6 +1120,7 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity) | |||
1120 | int ioapic; | 1120 | int ioapic; |
1121 | int ioapic_pin; | 1121 | int ioapic_pin; |
1122 | struct io_apic_irq_attr irq_attr; | 1122 | struct io_apic_irq_attr irq_attr; |
1123 | int ret; | ||
1123 | 1124 | ||
1124 | if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) | 1125 | if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) |
1125 | return gsi; | 1126 | return gsi; |
@@ -1149,7 +1150,9 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity) | |||
1149 | set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin, | 1150 | set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin, |
1150 | trigger == ACPI_EDGE_SENSITIVE ? 0 : 1, | 1151 | trigger == ACPI_EDGE_SENSITIVE ? 0 : 1, |
1151 | polarity == ACPI_ACTIVE_HIGH ? 0 : 1); | 1152 | polarity == ACPI_ACTIVE_HIGH ? 0 : 1); |
1152 | io_apic_set_pci_routing(dev, gsi_to_irq(gsi), &irq_attr); | 1153 | ret = io_apic_set_pci_routing(dev, gsi_to_irq(gsi), &irq_attr); |
1154 | if (ret < 0) | ||
1155 | gsi = INT_MIN; | ||
1153 | 1156 | ||
1154 | return gsi; | 1157 | return gsi; |
1155 | } | 1158 | } |