Messages in this thread Patch in this message | | | Date | Fri, 20 Jul 2012 15:10:03 +0800 | From | Wen Congyang <> | Subject | [RFC PATCH 2/8] memory-hotplug: offline memory only when it is onlined |
| |
offline_memory() will fail if the memory is not onlined. So check whether the memory is onlined before calling offline_memory().
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 | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c index db8de39..712e767 100644 --- a/drivers/acpi/acpi_memhotplug.c +++ b/drivers/acpi/acpi_memhotplug.c @@ -323,9 +323,13 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device) */ list_for_each_entry_safe(info, n, &mem_device->res_list, list) { if (info->enabled) { - result = offline_memory(info->start_addr, info->length); - if (result) - return result; + if (!is_memblk_offline(info->start_addr, + info->length)) { + result = offline_memory(info->start_addr, + info->length); + if (result) + return result; + } } list_del(&info->list); kfree(info); -- 1.7.1
| |