Commit c225150b86fef9f7663219b6e9f7606ea1607312
Committed by
Pekka Enberg
1 parent
bfa71457a0
Exists in
master
and in
6 other branches
slab: fix DEBUG_SLAB build
Fix CONFIG_SLAB=y CONFIG_DEBUG_SLAB=y build error and warnings. Now that ARCH_SLAB_MINALIGN defaults to __alignof__(unsigned long long), it is always defined (when slab.h included), but cannot be used in #if: mm/slab.c: In function `cache_alloc_debugcheck_after': mm/slab.c:3156:5: warning: "__alignof__" is not defined mm/slab.c:3156:5: error: missing binary operator before token "(" make[1]: *** [mm/slab.o] Error 1 So just remove the #if and #endif lines, but then 64-bit build warns: mm/slab.c: In function `cache_alloc_debugcheck_after': mm/slab.c:3156:6: warning: cast from pointer to integer of different size mm/slab.c:3158:10: warning: format `%d' expects type `int', but argument 3 has type `long unsigned int' Fix those with casts, whatever the actual type of ARCH_SLAB_MINALIGN. Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Showing 1 changed file with 2 additions and 4 deletions Side-by-side Diff
mm/slab.c
... | ... | @@ -3153,12 +3153,10 @@ |
3153 | 3153 | objp += obj_offset(cachep); |
3154 | 3154 | if (cachep->ctor && cachep->flags & SLAB_POISON) |
3155 | 3155 | cachep->ctor(objp); |
3156 | -#if ARCH_SLAB_MINALIGN | |
3157 | - if ((u32)objp & (ARCH_SLAB_MINALIGN-1)) { | |
3156 | + if ((unsigned long)objp & (ARCH_SLAB_MINALIGN-1)) { | |
3158 | 3157 | printk(KERN_ERR "0x%p: not aligned to ARCH_SLAB_MINALIGN=%d\n", |
3159 | - objp, ARCH_SLAB_MINALIGN); | |
3158 | + objp, (int)ARCH_SLAB_MINALIGN); | |
3160 | 3159 | } |
3161 | -#endif | |
3162 | 3160 | return objp; |
3163 | 3161 | } |
3164 | 3162 | #else |