diff options
Diffstat (limited to 'lib/list_debug.c')
| -rw-r--r-- | lib/list_debug.c | 45 | 
1 files changed, 24 insertions, 21 deletions
diff --git a/lib/list_debug.c b/lib/list_debug.c index 7f7bfa55eb6d..a34db8d27667 100644 --- a/lib/list_debug.c +++ b/lib/list_debug.c @@ -20,15 +20,16 @@  bool __list_add_valid(struct list_head *new, struct list_head *prev,  		      struct list_head *next)  { -	CHECK_DATA_CORRUPTION(next->prev != prev, -		"list_add corruption. next->prev should be prev (%p), but was %p. (next=%p).\n", -		prev, next->prev, next); -	CHECK_DATA_CORRUPTION(prev->next != next, -		"list_add corruption. prev->next should be next (%p), but was %p. (prev=%p).\n", -		next, prev->next, prev); -	CHECK_DATA_CORRUPTION(new == prev || new == next, -		"list_add double add: new=%p, prev=%p, next=%p.\n", -		new, prev, next); +	if (CHECK_DATA_CORRUPTION(next->prev != prev, +			"list_add corruption. next->prev should be prev (%p), but was %p. (next=%p).\n", +			prev, next->prev, next) || +	    CHECK_DATA_CORRUPTION(prev->next != next, +			"list_add corruption. prev->next should be next (%p), but was %p. (prev=%p).\n", +			next, prev->next, prev) || +	    CHECK_DATA_CORRUPTION(new == prev || new == next, +			"list_add double add: new=%p, prev=%p, next=%p.\n", +			new, prev, next)) +		return false;  	return true;  } @@ -41,18 +42,20 @@ bool __list_del_entry_valid(struct list_head *entry)  	prev = entry->prev;  	next = entry->next; -	CHECK_DATA_CORRUPTION(next == LIST_POISON1, -		"list_del corruption, %p->next is LIST_POISON1 (%p)\n", -		entry, LIST_POISON1); -	CHECK_DATA_CORRUPTION(prev == LIST_POISON2, -		"list_del corruption, %p->prev is LIST_POISON2 (%p)\n", -		entry, LIST_POISON2); -	CHECK_DATA_CORRUPTION(prev->next != entry, -		"list_del corruption. prev->next should be %p, but was %p\n", -		entry, prev->next); -	CHECK_DATA_CORRUPTION(next->prev != entry, -		"list_del corruption. next->prev should be %p, but was %p\n", -		entry, next->prev); +	if (CHECK_DATA_CORRUPTION(next == LIST_POISON1, +			"list_del corruption, %p->next is LIST_POISON1 (%p)\n", +			entry, LIST_POISON1) || +	    CHECK_DATA_CORRUPTION(prev == LIST_POISON2, +			"list_del corruption, %p->prev is LIST_POISON2 (%p)\n", +			entry, LIST_POISON2) || +	    CHECK_DATA_CORRUPTION(prev->next != entry, +			"list_del corruption. prev->next should be %p, but was %p\n", +			entry, prev->next) || +	    CHECK_DATA_CORRUPTION(next->prev != entry, +			"list_del corruption. next->prev should be %p, but was %p\n", +			entry, next->prev)) +		return false; +  	return true;  }  | 
