lkml.org 
[lkml]   [2012]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC PATCH 1/8] memory-hotplug: store the node id in acpi_memory_device
    The memory device has only one node id. Store the node id when
    enabling the memory device, and we can reuse it when removing the
    memory device.

    CC: David Rientjes <rientjes@google.com>
    CC: Jiang Liu <liuj97@gmail.com>
    CC: Len Brown <len.brown@intel.com>
    CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    CC: Paul Mackerras <paulus@samba.org>
    CC: Christoph Lameter <cl@linux.com>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    CC: Andrew Morton <akpm@linux-foundation.org>
    CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    CC: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    ---
    drivers/acpi/acpi_memhotplug.c | 8 +++++---
    1 files changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
    index 5cafd6b..db8de39 100644
    --- a/drivers/acpi/acpi_memhotplug.c
    +++ b/drivers/acpi/acpi_memhotplug.c
    @@ -84,6 +84,7 @@ struct acpi_memory_info {
    struct acpi_memory_device {
    struct acpi_device * device;
    unsigned int state; /* State of the memory device */
    + int nid;
    struct list_head res_list;
    };

    @@ -257,6 +258,9 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
    info->enabled = 1;
    num_enabled++;
    }
    +
    + mem_device->nid = node;
    +
    if (!num_enabled) {
    printk(KERN_ERR PREFIX "add_memory failed\n");
    mem_device->state = MEMORY_INVALID_STATE;
    @@ -463,7 +467,7 @@ static int acpi_memory_device_remove(struct acpi_device *device, int type)

    mem_device = acpi_driver_data(device);

    - node = acpi_get_node(mem_device->device->handle);
    + node = mem_device->nid;
    list_for_each_entry_safe(info, tmp, &mem_device->res_list, list) {
    if (!info->enabled)
    continue;
    @@ -473,8 +477,6 @@ static int acpi_memory_device_remove(struct acpi_device *device, int type)
    if (result)
    return result;
    }
    - if (node < 0)
    - node = memory_add_physaddr_to_nid(info->start_addr);

    result = remove_memory(node, info->start_addr, info->length);
    if (result)
    --
    1.7.1


    \
     
     \ /
      Last update: 2012-07-20 09:41    [W:0.025 / U:61.120 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site