• Tejun Heo's avatar
    memblock: Reimplement memblock_add_region() · 784656f9
    Tejun Heo authored
    memblock_add_region() carefully checked for merge and overlap
    conditions while adding a new region, which is complicated and makes
    it difficult to allow arbitrary overlaps or add more merge conditions
    (e.g. node ID).
    
    This re-implements memblock_add_region() such that insertion is done
    in two steps - all non-overlapping portions of new area are inserted
    as separate regions first and then memblock_merge_regions() scan and
    merge all neighbouring compatible regions.
    
    This makes addition logic simpler and more versatile and enables
    adding node information to memblock.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Link: http://lkml.kernel.org/r/1310462166-31469-3-git-send-email-tj@kernel.org
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    784656f9
memblock.c 21.4 KB