slab: Make allocations with GFP_ZERO slightly more efficient

Use the likely mechanism already around valid
pointer tests to better choose when to memset
to 0 allocations with __GFP_ZERO

Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>

authored by Joe Perches and committed by Pekka Enberg 5087c822 8fc9cf42

+8 -8
+8 -8
mm/slab.c
··· 3278 kmemleak_alloc_recursive(ptr, cachep->object_size, 1, cachep->flags, 3279 flags); 3280 3281 - if (likely(ptr)) 3282 kmemcheck_slab_alloc(cachep, flags, ptr, cachep->object_size); 3283 - 3284 - if (unlikely((flags & __GFP_ZERO) && ptr)) 3285 - memset(ptr, 0, cachep->object_size); 3286 3287 return ptr; 3288 } ··· 3343 flags); 3344 prefetchw(objp); 3345 3346 - if (likely(objp)) 3347 kmemcheck_slab_alloc(cachep, flags, objp, cachep->object_size); 3348 - 3349 - if (unlikely((flags & __GFP_ZERO) && objp)) 3350 - memset(objp, 0, cachep->object_size); 3351 3352 return objp; 3353 }
··· 3278 kmemleak_alloc_recursive(ptr, cachep->object_size, 1, cachep->flags, 3279 flags); 3280 3281 + if (likely(ptr)) { 3282 kmemcheck_slab_alloc(cachep, flags, ptr, cachep->object_size); 3283 + if (unlikely(flags & __GFP_ZERO)) 3284 + memset(ptr, 0, cachep->object_size); 3285 + } 3286 3287 return ptr; 3288 } ··· 3343 flags); 3344 prefetchw(objp); 3345 3346 + if (likely(objp)) { 3347 kmemcheck_slab_alloc(cachep, flags, objp, cachep->object_size); 3348 + if (unlikely(flags & __GFP_ZERO)) 3349 + memset(objp, 0, cachep->object_size); 3350 + } 3351 3352 return objp; 3353 }