On Fri, Jul 27, 2018 at 10:53:24AM -0400, Pavel Tatashin wrote: > unsigned long *nr_initialised) > > > +static bool __meminit > > > +defer_init(int nid, unsigned long pfn, unsigned long end_pfn) > > > > Hi Pavel, > > > > maybe I do not understand properly the __init/__meminit macros, but should not > > "defer_init" be __init instead of __meminit? > > I think that functions marked as __meminit are not freed up, right? > > Not exactly. As I understand: __meminit is the same as __init when > CONFIG_MEMORY_HOTPLUG=n. But, when memory hotplug is configured, > __meminit is not freed, because code that adds memory is shared > between boot and hotplug. In this case defer_init() is called only > during boot, and could be __init, but it is called from > memmap_init_zone() which is __meminit and thus section mismatch would > happen. Oh yes, I did not think about memmap_init_zone(), you are right. Then, nothing to argue about ;-). Thanks -- Oscar Salvador SUSE L3