On Mon, 30 Jul 2012 18:35:37 +0800
Wen Congyang [off-list ref] wrote:
At 07/30/2012 06:23 PM, Heiko Carstens Wrote:
quoted
On Fri, Jul 27, 2012 at 06:32:15PM +0800, Wen Congyang wrote:
quoted
We don't call __add_pages() directly in the function add_memory()
because some other architecture related things need to be done
before or after calling __add_pages(). So we should introduce
a new function arch_remove_memory() to revert the things
done in arch_add_memory().
Note: the function for s390 is not implemented(I don't know how to
implement it for s390).
There is no hardware or firmware interface which could trigger a
hot memory remove on s390. So there is nothing that needs to be
implemented.
Thanks for providing this information.
According to this, arch_remove_memory() for s390 can just return
-EBUSY.
Yes, but there is a prototype mismatch for arch_remove_memory() on s390
and also other architectures (u64 vs. unsigned long).
arch/s390/mm/init.c:262: error: conflicting types for
‘arch_remove_memory’ include/linux/memory_hotplug.h:88: error: previous
declaration of ‘arch_remove_memory’ was here
In memory_hotplug.h you have:
extern int arch_remove_memory(unsigned long start, unsigned long size);
On all archs other than x86 you have:
int arch_remove_memory(u64 start, u64 size)