lkml.org 
[lkml]   [2010]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] list debugging: warn when deleting a deleted entry
    Date
    Use the magic LIST_POISON* values to detect an incorrect use of list_del on a
    deleted entry. This DEBUG_LIST specific warning is easier to understand than
    the generic Oops message caused by LIST_POISON dereference.

    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    ---
    lib/list_debug.c | 6 ++++++
    1 files changed, 6 insertions(+), 0 deletions(-)

    diff --git a/lib/list_debug.c b/lib/list_debug.c
    index 1a39f4e..344c710 100644
    --- a/lib/list_debug.c
    +++ b/lib/list_debug.c
    @@ -43,6 +43,12 @@ EXPORT_SYMBOL(__list_add);
    */
    void list_del(struct list_head *entry)
    {
    + WARN(entry->next == LIST_POISON1,
    + "list_del corruption, next is LIST_POISON1 (%p)\n",
    + LIST_POISON1);
    + WARN(entry->next != LIST_POISON1 && entry->prev == LIST_POISON2,
    + "list_del corruption, prev is LIST_POISON2 (%p)\n",
    + LIST_POISON2);
    WARN(entry->prev->next != entry,
    "list_del corruption. prev->next should be %p, "
    "but was %p\n", entry, entry->prev->next);
    --
    1.7.0


    \
     
     \ /
      Last update: 2010-05-05 10:19    [W:0.045 / U:29.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site