• David Rientjes's avatar
    flex_array: poison free elements · 19da3dd1
    David Rientjes authored
    Newly initialized flex_array's and/or flex_array_part's are now poisoned
    with a new poison value, FLEX_ARRAY_FREE.  It's value is similar to
    POISON_FREE used in the various slab allocators, but is different to
    distinguish between flex array's poisoned kmem and slab allocator poisoned
    kmem.
    
    This will allow us to identify flex_array_part's that only contain free
    elements (and free them with an addition to the flex_array API).  This
    could also be extended in the future to identify `get' uses on elements
    that have not been `put'.
    
    If __GFP_ZERO is passed for a part's gfp mask, the poisoning is avoided.
    These elements are considered to be in-use since they have been
    initialized.
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Cc: Dave Hansen <dave@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    19da3dd1
flex_array.c 8.34 KB