ACPI: Ingore the memory block with zero block size in course of memory hotplug
Zhao Yakui [Tue, 7 Jul 2009 02:56:11 +0000 (10:56 +0800)]
If the memory block size is zero, ignore it and don't do the memory hotplug
flowchart. Otherwise it will complain the following warning message:
  >System RAM resource 0 - ffffffffffffffff cannot be added

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>

drivers/acpi/acpi_memhotplug.c

index 37cbe72..9a62224 100644 (file)
@@ -242,7 +242,12 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
                        num_enabled++;
                        continue;
                }
-
+               /*
+                * If the memory block size is zero, please ignore it.
+                * Don't try to do the following memory hotplug flowchart.
+                */
+               if (!info->length)
+                       continue;
                if (node < 0)
                        node = memory_add_physaddr_to_nid(info->start_addr);
 
@@ -257,8 +262,15 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
                mem_device->state = MEMORY_INVALID_STATE;
                return -EINVAL;
        }
-
-       return result;
+       /*
+        * Sometimes the memory device will contain several memory blocks.
+        * When one memory block is hot-added to the system memory, it will
+        * be regarded as a success.
+        * Otherwise if the last memory block can't be hot-added to the system
+        * memory, it will be failure and the memory device can't be bound with
+        * driver.
+        */
+       return 0;
 }
 
 static int acpi_memory_powerdown_device(struct acpi_memory_device *mem_device)