|
@@ -1120,6 +1120,7 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
|
|
|
int ioapic;
|
|
|
int ioapic_pin;
|
|
|
struct io_apic_irq_attr irq_attr;
|
|
|
+ int ret;
|
|
|
|
|
|
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
|
|
|
return gsi;
|
|
@@ -1149,7 +1150,9 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
|
|
|
set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin,
|
|
|
trigger == ACPI_EDGE_SENSITIVE ? 0 : 1,
|
|
|
polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
|
|
|
- io_apic_set_pci_routing(dev, gsi_to_irq(gsi), &irq_attr);
|
|
|
+ ret = io_apic_set_pci_routing(dev, gsi_to_irq(gsi), &irq_attr);
|
|
|
+ if (ret < 0)
|
|
|
+ gsi = INT_MIN;
|
|
|
|
|
|
return gsi;
|
|
|
}
|