Messages in this thread Patch in this message | | | From | Baruch Siach <> | Subject | [PATCH] list debugging: warn when deleting a deleted entry | Date | Wed, 5 May 2010 11:14:29 +0300 |
| |
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
| |