Skip to contentSkip to conversation

ACPI serial fix

PATCH In review Bjorn Helgaas 1 participant 2 messages Oct 8, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ACPI serial fix

Here's another little fix for ACPI serial discovery in 2.6.

Intel 870 firmware reports an extra zero-length IO port range, which is bogus, as far as I can tell. Ignore it.

===== drivers/serial/8250_acpi.c 1.4 vs edited =====

drivers/serial/8250_acpi.c +5 -0
@@ -38,6 +38,11 @@
 static acpi_status acpi_serial_port(struct serial_struct *req,
 				    struct acpi_resource_io *io)
 {
+	if (!io->range_length) {
+		printk(KERN_ERR "%s: zero-length IO port range?\n", __FUNCTION__);
+		return AE_ERROR;
+	}
+
 	req->port = io->min_base_address;
 	req->io_type = SERIAL_IO_PORT;
 	return AE_OK;
#1 lore raw
Quoted 1 line · Bjorn Helgaas

Here's another little fix for ACPI serial discovery in 2.6.

Rats. Ignore the previous patch and use this, which I've actually tested with the next step (removal of all the stuff in asm-ia64/serial.h):

Intel 870 firmware reports an extra zero-length IO port range, which is bogus, as far as I can tell. Ignore it.

===== drivers/serial/8250_acpi.c 1.4 vs edited =====

drivers/serial/8250_acpi.c +5 -2
@@ -38,8 +38,11 @@
 static acpi_status acpi_serial_port(struct serial_struct *req,
 				    struct acpi_resource_io *io)
 {
-	req->port = io->min_base_address;
-	req->io_type = SERIAL_IO_PORT;
+	if (io->range_length) {
+		req->port = io->min_base_address;
+		req->io_type = SERIAL_IO_PORT;
+	} else
+		printk(KERN_ERR "%s: zero-length IO port range?\n", __FUNCTION__);
 	return AE_OK;
 }