Skip to content
  • Michal Hocko's avatar
    mm, memory_hotplug: fix the section mismatch warning · cdf72f25
    Michal Hocko authored
    Tobias has reported following section mismatches introduced by "mm,
    memory_hotplug: do not associate hotadded memory to zones until online".
    
      WARNING: mm/built-in.o(.text+0x5a1c2): Section mismatch in reference from the function move_pfn_range_to_zone() to the function .meminit.text:memmap_init_zone()
      The function move_pfn_range_to_zone() references
      the function __meminit memmap_init_zone().
      This is often because move_pfn_range_to_zone lacks a __meminit
      annotation or the annotation of memmap_init_zone is wrong.
    
      WARNING: mm/built-in.o(.text+0x5a25b): Section mismatch in reference from the function move_pfn_range_to_zone() to the function .meminit.text:init_currently_empty_zone()
      The function move_pfn_range_to_zone() references
      the function __meminit init_currently_empty_zone().
      This is often because move_pfn_range_to_zone lacks a __meminit
      annotation or the annotation of init_currently_empty_zone is wrong.
    
      WARNING: vmlinux.o(.text+0x188aa2): Section mismatch in reference from the function move_pfn_range_to_zone() to the function .meminit.text:memmap_init_zone()
      The function move_pfn_range_to_zone() references
      the function __meminit memmap_init_zone().
      This is often because move_pfn_range_to_zone lacks a __meminit
      annotation or the annotation of memmap_init_zone is wrong.
    
      WARNING: vmlinux.o(.text+0x188b3b): Section mismatch in reference from the function move_pfn_range_to_zone() to the function .meminit.text:init_currently_empty_zone()
      The function move_pfn_range_to_zone() references
      the function __meminit init_currently_empty_zone().
      This is often because move_pfn_range_to_zone lacks a __meminit
      annotation or the annotation of init_currently_empty_zone is wrong.
    
    Both memmap_init_zone and init_currently_empty_zone are marked __meminit
    but move_pfn_range_to_zone is used outside of __meminit sections (e.g.
    devm_memremap_pages) so we have to hide it from the checker by __ref
    annotation.
    
    Link: http://lkml.kernel.org/r/20170515085827.16474-14-mhocko@kernel.org
    
    
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Reported-by: default avatarTobias Regnery <tobias.regnery@gmail.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Daniel Kiper <daniel.kiper@oracle.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Igor Mammedov <imammedo@redhat.com>
    Cc: Jerome Glisse <jglisse@redhat.com>
    Cc: Joonsoo Kim <js1304@gmail.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
    Cc: Toshi Kani <toshi.kani@hpe.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Xishi Qiu <qiuxishi@huawei.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cdf72f25