diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2007-10-16 01:26:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 09:43:02 -0700 |
commit | de33b821f34dc9e2fabf81a8ba464f3ef039bd00 (patch) | |
tree | fa7486b6a5ab054b7c220559e4af262629579a26 /arch/ia64 | |
parent | 0c0e6195896535481173df98935ad8db174f4d45 (diff) | |
download | op-kernel-dev-de33b821f34dc9e2fabf81a8ba464f3ef039bd00.zip op-kernel-dev-de33b821f34dc9e2fabf81a8ba464f3ef039bd00.tar.gz |
memory unplug: ia64 interface
IA64 memory unplug interface.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/mm/init.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index a096b30..947ec0c 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c @@ -721,7 +721,17 @@ int arch_add_memory(int nid, u64 start, u64 size) int remove_memory(u64 start, u64 size) { - return -EINVAL; + unsigned long start_pfn, end_pfn; + unsigned long timeout = 120 * HZ; + int ret; + start_pfn = start >> PAGE_SHIFT; + end_pfn = start_pfn + (size >> PAGE_SHIFT); + ret = offline_pages(start_pfn, end_pfn, timeout); + if (ret) + goto out; + /* we can free mem_map at this point */ +out: + return ret; } EXPORT_SYMBOL_GPL(remove_memory); #endif |