• David Hildenbrand's avatar
    mm/memblock: expose only miminal interface to add/walk physmem · 77649905
    David Hildenbrand authored
    "physmem" in the memblock allocator is somewhat weird: it's not actually
    used for allocation, it's simply information collected during boot, which
    describes the unmodified physical memory map at boot time, without any
    standby/hotplugged memory. It's only used on s390 and is currently the
    only reason s390 keeps using CONFIG_ARCH_KEEP_MEMBLOCK.
    
    Physmem isn't numa aware and current users don't specify any flags. Let's
    hide it from the user, exposing only for_each_physmem(), and simplify. The
    interface for physmem is now really minimalistic:
    - memblock_physmem_add() to add ranges
    - for_each_physmem() / __next_physmem_range() to walk physmem ranges
    
    Don't place it into an __init section and don't discard it without
    CONFIG_ARCH_KEEP_MEMBLOCK. As we're reusing __next_mem_range(), remove
    the __meminit notifier to avoid section mismatch warnings once
    CONFIG_ARCH_KEEP_MEMBLOCK is no longer used with
    CONFIG_HAVE_MEMBLOCK_PHYS_MAP.
    
    While fixing up the documentation, sneak in some related cleanups. We can
    stop setting CONFIG_ARCH_KEEP_MEMBLOCK for s390 next.
    
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reviewed-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Message-Id: <20200701141830.18749-2-david@redhat.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    77649905
memblock.c 58.4 KB