Pull novell-bugzilla-156426 into release branch
[pandora-kernel.git] / drivers / acpi / acpi_memhotplug.c
index 01a1bd2..e0a95ba 100644 (file)
@@ -71,10 +71,10 @@ static struct acpi_driver acpi_memory_device_driver = {
 struct acpi_memory_device {
        acpi_handle handle;
        unsigned int state;     /* State of the memory device */
-       unsigned short cache_attribute; /* memory cache attribute */
-       unsigned short read_write_attribute;    /* memory read/write attribute */
+       unsigned short caching; /* memory cache attribute */
+       unsigned short write_protect;   /* memory read/write attribute */
        u64 start_addr;         /* Memory Range start physical addr */
-       u64 end_addr;           /* Memory Range end physical addr */
+       u64 length;             /* Memory Range length */
 };
 
 static int
@@ -97,12 +97,11 @@ acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
        if (ACPI_SUCCESS(status)) {
                if (address64.resource_type == ACPI_MEMORY_RANGE) {
                        /* Populate the structure */
-                       mem_device->cache_attribute =
-                           address64.attribute.memory.cache_attribute;
-                       mem_device->read_write_attribute =
-                           address64.attribute.memory.read_write_attribute;
-                       mem_device->start_addr = address64.min_address_range;
-                       mem_device->end_addr = address64.max_address_range;
+                       mem_device->caching = address64.info.mem.caching;
+                       mem_device->write_protect =
+                           address64.info.mem.write_protect;
+                       mem_device->start_addr = address64.minimum;
+                       mem_device->length = address64.address_length;
                }
        }
 
@@ -199,9 +198,7 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
         * Tell the VM there is more memory here...
         * Note: Assume that this function returns zero on success
         */
-       result = add_memory(mem_device->start_addr,
-                           (mem_device->end_addr - mem_device->start_addr) + 1,
-                           mem_device->read_write_attribute);
+       result = add_memory(mem_device->start_addr, mem_device->length);
        if (result) {
                ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "\nadd_memory failed\n"));
                mem_device->state = MEMORY_INVALID_STATE;
@@ -250,8 +247,7 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
 {
        int result;
        u64 start = mem_device->start_addr;
-       u64 len = mem_device->end_addr - start + 1;
-       unsigned long attr = mem_device->read_write_attribute;
+       u64 len = mem_device->length;
 
        ACPI_FUNCTION_TRACE("acpi_memory_disable_device");
 
@@ -259,7 +255,7 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
         * Ask the VM to offline this memory range.
         * Note: Assume that this function returns zero on success
         */
-       result = remove_memory(start, len, attr);
+       result = remove_memory(start, len);
        if (result) {
                ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Hot-Remove failed.\n"));
                return_VALUE(result);