Re: [linux-next:master 6243/6567] WARNING: vmlinux.o(.text.unlikely+0x5fb7): Section mismatch in reference from the function __def_free() to the function .init.text:__free_pages_boot_core()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux