Subject: Re: [RFC PATCH v5 12/19] memory-hotplug: introduce new function arch_remove_memory()

From: Gerald Schaefer <[email-masked]>
Date: Tue, 31 Jul 2012 14:40:00 +0200

On Mon, 30 Jul 2012 18:35:37 +0800
Wen Congyang <[email-masked]> wrote:

> At 07/30/2012 06:23 PM, Heiko Carstens Wrote:
> > On Fri, Jul 27, 2012 at 06:32:15PM +0800, Wen Congyang wrote:
> >> 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)