]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/serial/8250_acpi.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[mv-sheeva.git] / drivers / serial / 8250_acpi.c
index 6b9ead288517f70b1b306f7f5f0a14466d92d356..a802bdce6e5dd02a044f343cddc4dd1a71fe5308 100644 (file)
@@ -47,18 +47,30 @@ static acpi_status acpi_serial_port(struct uart_port *port,
 static acpi_status acpi_serial_ext_irq(struct uart_port *port,
                                       struct acpi_resource_ext_irq *ext_irq)
 {
-       if (ext_irq->number_of_interrupts > 0)
-               port->irq = acpi_register_gsi(ext_irq->interrupts[0],
+       int rc;
+
+       if (ext_irq->number_of_interrupts > 0) {
+               rc = acpi_register_gsi(ext_irq->interrupts[0],
                           ext_irq->edge_level, ext_irq->active_high_low);
+               if (rc < 0)
+                       return AE_ERROR;
+               port->irq = rc;
+       }
        return AE_OK;
 }
 
 static acpi_status acpi_serial_irq(struct uart_port *port,
                                   struct acpi_resource_irq *irq)
 {
-       if (irq->number_of_interrupts > 0)
-               port->irq = acpi_register_gsi(irq->interrupts[0],
+       int rc;
+
+       if (irq->number_of_interrupts > 0) {
+               rc = acpi_register_gsi(irq->interrupts[0],
                           irq->edge_level, irq->active_high_low);
+               if (rc < 0)
+                       return AE_ERROR;
+               port->irq = rc;
+       }
        return AE_OK;
 }