diff -urN orig/drivers/acpi/motherboard.c work/drivers/acpi/motherboard.c --- orig/drivers/acpi/motherboard.c 2006-07-28 13:57:35.000000000 -0400 +++ work/drivers/acpi/motherboard.c 2006-07-28 16:39:22.000000000 -0400 @@ -87,6 +87,7 @@ } } else { /* Memory mapped IO? */ + return -EINVAL; } if (requested_res) @@ -96,11 +97,16 @@ static int acpi_motherboard_add(struct acpi_device *device) { + acpi_status status; if (!device) return -EINVAL; - acpi_walk_resources(device->handle, METHOD_NAME__CRS, + + status = acpi_walk_resources(device->handle, METHOD_NAME__CRS, acpi_reserve_io_ranges, NULL); + if (ACPI_FAILURE(status)) + return -ENODEV; + return 0; }