• Andy Whitcroft's avatar
    [PATCH] sparsemem hotplug base · 29751f69
    Andy Whitcroft authored
    Make sparse's initalization be accessible at runtime.  This allows sparse
    mappings to be created after boot in a hotplug situation.
    
    This patch is separated from the previous one just to give an indication how
    much of the sparse infrastructure is *just* for hotplug memory.
    
    The section_mem_map doesn't really store a pointer.  It stores something that
    is convenient to do some math against to get a pointer.  It isn't valid to
    just do *section_mem_map, so I don't think it should be stored as a pointer.
    
    There are a couple of things I'd like to store about a section.  First of all,
    the fact that it is !NULL does not mean that it is present.  There could be
    such a combination where section_mem_map *is* NULL, but the math gets you
    properly to a real mem_map.  So, I don't think that check is safe.
    
    Since we're storing 32-bit-aligned structures, we have a few bits in the
    bottom of the pointer to play with.  Use one bit to encode whether there's
    really a mem_map there, and the other one to tell whether there's a valid
    section there.  We need to distinguish between the two because sometimes
    there's a gap between when a section is discovered to be present and when we
    can get the mem_map for it.
    Signed-off-by: default avatarDave Hansen <haveblue@us.ibm.com>
    Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
    Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
    Signed-off-by: default avatarBob Picco <bob.picco@hp.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    29751f69
sparse.c 3.38 KB