• Chengming Zhou's avatar
    slab: make check_object() more consistent · 47d911b0
    Chengming Zhou authored
    Now check_object() calls check_bytes_and_report() multiple times to
    check every section of the object it cares about, like left and right
    redzones, object poison, paddings poison and freepointer. It will
    abort the checking process and return 0 once it finds an error.
    
    There are two inconsistencies in check_object(), which are alignment
    padding checking and object padding checking. We only print the error
    messages but don't return 0 to tell callers that something is wrong
    and needs to be handled. Please see alloc_debug_processing() and
    free_debug_processing() for details.
    
    We want to do all checks without skipping, so use a local variable
    "ret" to save each check result and change check_bytes_and_report() to
    only report specific error findings. Then at end of check_object(),
    print the trailer once if any found an error.
    Suggested-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarChengming Zhou <chengming.zhou@linux.dev>
    Reviewed-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    47d911b0
slub.c 182 KB