[ACPI] 8250 driver now checks for acpi_register_gsi() errors
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Thu, 28 Jul 2005 18:42:00 +0000 (14:42 -0400)
committerLen Brown <len.brown@intel.com>
Fri, 5 Aug 2005 02:22:18 +0000 (22:22 -0400)
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
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;
 }