diff options
Diffstat (limited to 'drivers/acpi/acpi_memhotplug.c')
-rw-r--r-- | drivers/acpi/acpi_memhotplug.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c index 98099de59b45..6bcd9e8e7bcb 100644 --- a/drivers/acpi/acpi_memhotplug.c +++ b/drivers/acpi/acpi_memhotplug.c | |||
@@ -85,6 +85,8 @@ struct acpi_memory_device { | |||
85 | struct list_head res_list; | 85 | struct list_head res_list; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static int acpi_hotmem_initialized; | ||
89 | |||
88 | static acpi_status | 90 | static acpi_status |
89 | acpi_memory_get_resource(struct acpi_resource *resource, void *context) | 91 | acpi_memory_get_resource(struct acpi_resource *resource, void *context) |
90 | { | 92 | { |
@@ -414,7 +416,7 @@ static int acpi_memory_device_add(struct acpi_device *device) | |||
414 | /* Set the device state */ | 416 | /* Set the device state */ |
415 | mem_device->state = MEMORY_POWER_ON_STATE; | 417 | mem_device->state = MEMORY_POWER_ON_STATE; |
416 | 418 | ||
417 | printk(KERN_INFO "%s \n", acpi_device_name(device)); | 419 | printk(KERN_DEBUG "%s \n", acpi_device_name(device)); |
418 | 420 | ||
419 | return result; | 421 | return result; |
420 | } | 422 | } |
@@ -438,6 +440,15 @@ static int acpi_memory_device_start (struct acpi_device *device) | |||
438 | struct acpi_memory_device *mem_device; | 440 | struct acpi_memory_device *mem_device; |
439 | int result = 0; | 441 | int result = 0; |
440 | 442 | ||
443 | /* | ||
444 | * Early boot code has recognized memory area by EFI/E820. | ||
445 | * If DSDT shows these memory devices on boot, hotplug is not necessary | ||
446 | * for them. So, it just returns until completion of this driver's | ||
447 | * start up. | ||
448 | */ | ||
449 | if (!acpi_hotmem_initialized) | ||
450 | return 0; | ||
451 | |||
441 | mem_device = acpi_driver_data(device); | 452 | mem_device = acpi_driver_data(device); |
442 | 453 | ||
443 | if (!acpi_memory_check_device(mem_device)) { | 454 | if (!acpi_memory_check_device(mem_device)) { |
@@ -537,6 +548,7 @@ static int __init acpi_memory_device_init(void) | |||
537 | return -ENODEV; | 548 | return -ENODEV; |
538 | } | 549 | } |
539 | 550 | ||
551 | acpi_hotmem_initialized = 1; | ||
540 | return 0; | 552 | return 0; |
541 | } | 553 | } |
542 | 554 | ||