forked from mirrors/linux
		
	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>
			
			
This commit is contained in:
		
							parent
							
								
									bfa71457a0
								
							
						
					
					
						commit
						c225150b86
					
				
					 1 changed files with 2 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -3153,12 +3153,10 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep,
 | 
			
		|||
	objp += obj_offset(cachep);
 | 
			
		||||
	if (cachep->ctor && cachep->flags & SLAB_POISON)
 | 
			
		||||
		cachep->ctor(objp);
 | 
			
		||||
#if ARCH_SLAB_MINALIGN
 | 
			
		||||
	if ((u32)objp & (ARCH_SLAB_MINALIGN-1)) {
 | 
			
		||||
	if ((unsigned long)objp & (ARCH_SLAB_MINALIGN-1)) {
 | 
			
		||||
		printk(KERN_ERR "0x%p: not aligned to ARCH_SLAB_MINALIGN=%d\n",
 | 
			
		||||
		       objp, ARCH_SLAB_MINALIGN);
 | 
			
		||||
		       objp, (int)ARCH_SLAB_MINALIGN);
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
	return objp;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue