From: Keith Mannthey This patch set allow SPARSEMEM and RESERVE based hot-add to work. I have test both options and they work as expected. I am adding memory to the 2nd node of a numa system (x86_64). Major changes from last set is the config change and RESERVE enablment. This patch: Make ACPI motherboard driver not attach to devices/handles it dosen't expect. Fix a bug where the motherboard driver attached to hot-add memory event and caused the add memory call to fail. Signed-off-by: Keith Mannthey Cc: KAMEZAWA Hiroyuki Cc: Andi Kleen Signed-off-by: Andrew Morton --- diff -puN drivers/acpi/motherboard.c~hot-add-mem-x86_64-acpi-motherboard-fix drivers/acpi/motherboard.c --- a/drivers/acpi/motherboard.c~hot-add-mem-x86_64-acpi-motherboard-fix +++ a/drivers/acpi/motherboard.c @@ -87,6 +87,7 @@ static acpi_status acpi_reserve_io_range } } else { /* Memory mapped IO? */ + return -EINVAL; } if (requested_res) @@ -96,11 +97,16 @@ static acpi_status acpi_reserve_io_range 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; } _