Commit e6a99d31 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6

* 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
  slub: fix check_bytes() for slub debugging
  slub: Fix full list corruption if debugging is on
parents 6bb615bc ef62fb32
...@@ -701,7 +701,7 @@ static u8 *check_bytes(u8 *start, u8 value, unsigned int bytes) ...@@ -701,7 +701,7 @@ static u8 *check_bytes(u8 *start, u8 value, unsigned int bytes)
return check_bytes8(start, value, bytes); return check_bytes8(start, value, bytes);
value64 = value | value << 8 | value << 16 | value << 24; value64 = value | value << 8 | value << 16 | value << 24;
value64 = value64 | value64 << 32; value64 = (value64 & 0xffffffff) | value64 << 32;
prefix = 8 - ((unsigned long)start) % 8; prefix = 8 - ((unsigned long)start) % 8;
if (prefix) { if (prefix) {
...@@ -2387,11 +2387,13 @@ static void __slab_free(struct kmem_cache *s, struct page *page, ...@@ -2387,11 +2387,13 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
slab_empty: slab_empty:
if (prior) { if (prior) {
/* /*
* Slab still on the partial list. * Slab on the partial list.
*/ */
remove_partial(n, page); remove_partial(n, page);
stat(s, FREE_REMOVE_PARTIAL); stat(s, FREE_REMOVE_PARTIAL);
} } else
/* Slab must be on the full list */
remove_full(s, page);
spin_unlock_irqrestore(&n->list_lock, flags); spin_unlock_irqrestore(&n->list_lock, flags);
stat(s, FREE_SLAB); stat(s, FREE_SLAB);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment