[PATCH] slub: fix kernel BUG at mm/slub.c:1950!
Hugh Dickins
hughd at google.com
Mon Jun 13 12:03:02 EST 2011
3.0-rc won't boot with SLUB on my PowerPC G5: kernel BUG at mm/slub.c:1950!
Bisected to 1759415e630e "slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery".
After giving myself a medal for finding the BUG on line 1950 of mm/slub.c
(it's actually the
VM_BUG_ON((unsigned long)(&pcp1) % (2 * sizeof(pcp1)));
on line 268 of the morass that is include/linux/percpu.h)
I tried the following alignment patch and found it to work.
Signed-off-by: Hugh Dickins <hughd at google.com>
---
include/linux/slub_def.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- 3.0-rc2/include/linux/slub_def.h 2011-05-29 18:42:37.077880848 -0700
+++ linux/include/linux/slub_def.h 2011-06-12 17:17:51.000000000 -0700
@@ -43,7 +43,7 @@ struct kmem_cache_cpu {
#ifdef CONFIG_SLUB_STATS
unsigned stat[NR_SLUB_STAT_ITEMS];
#endif
-};
+} __attribute__((aligned(2 * sizeof(long))));
struct kmem_cache_node {
spinlock_t list_lock; /* Protect partial list and nr_partial */
More information about the Linuxppc-dev
mailing list