Hi Andrew, Yes, we need __init for both: deferred_init_range() and __def_free(). Thank you, Pavel On Wed, Oct 18, 2017 at 5:40 PM, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > On Wed, 18 Oct 2017 18:41:44 +0800 kbuild test robot <fengguang.wu@xxxxxxxxx> wrote: > >> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master >> head: a7dd40274d75326ca868479c62090b1198a357ad >> commit: 430676b385fb341d5a33950bae284d0df2e70117 [6243/6567] mm: deferred_init_memmap improvements >> config: x86_64-randconfig-it0-10181522 (attached as .config) >> compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 >> reproduce: >> git checkout 430676b385fb341d5a33950bae284d0df2e70117 >> # save the attached .config to linux build tree >> make ARCH=x86_64 >> >> All warnings (new ones prefixed by >>): >> >> >> WARNING: vmlinux.o(.text.unlikely+0x5fb7): Section mismatch in reference from the function __def_free() to the function .init.text:__free_pages_boot_core() >> The function __def_free() references >> the function __init __free_pages_boot_core(). >> This is often because __def_free lacks a __init >> annotation or the annotation of __free_pages_boot_core is wrong. > > This? > > --- a/mm/page_alloc.c~mm-deferred_init_memmap-improvements-fix > +++ a/mm/page_alloc.c > @@ -1448,7 +1448,7 @@ static inline void __init pgdat_init_rep > * Helper for deferred_init_range, free the given range, reset the counters, and > * return number of pages freed. > */ > -static inline unsigned long __def_free(unsigned long *nr_free, > +static unsigned long __init __def_free(unsigned long *nr_free, > unsigned long *free_base_pfn, > struct page **page) > { > @@ -1462,8 +1462,8 @@ static inline unsigned long __def_free(u > return nr; > } > > -static unsigned long deferred_init_range(int nid, int zid, unsigned long pfn, > - unsigned long end_pfn) > +static unsigned long __init deferred_init_range(int nid, int zid, > + unsigned long pfn, unsigned long end_pfn) > { > struct mminit_pfnnid_cache nid_init_state = { }; > unsigned long nr_pgmask = pageblock_nr_pages - 1; > _ > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>