• Gerald Schaefer's avatar
    s390/mm: fix zone calculation in arch_add_memory() · 4a654294
    Gerald Schaefer authored
    Standby (hotplug) memory should be added to ZONE_MOVABLE on s390. After
    commit 199071f1 "s390/mm: make arch_add_memory() NUMA aware",
    arch_add_memory() used memblock_end_of_DRAM() to find out the end of
    ZONE_NORMAL and the beginning of ZONE_MOVABLE. However, commit 7f36e3e5
    "memory-hotplug: add hot-added memory ranges to memblock before allocate
    node_data for a node." moved the call of memblock_add_node() before
    the call of arch_add_memory() in add_memory_resource(), and thus changed
    the return value of memblock_end_of_DRAM() when called in
    arch_add_memory(). As a result, arch_add_memory() will think that all
    memory blocks should be added to ZONE_NORMAL.
    
    Fix this by changing the logic in arch_add_memory() so that it will
    manually iterate over all zones of a given node to find out which zone
    a memory block should be added to.
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    4a654294
init.c 5.46 KB