summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2009-11-25 20:14:48 +0200
committerPekka Enberg <penberg@cs.helsinki.fi>2009-11-29 09:01:59 +0200
commit74e2134ff892ee4ea4fbd52637060b71e540faf1 (patch)
treea0747c885ca2bc04745a77ef4a902d121acbe44f
parentb419148e567728f6af0c3b01965c1cc141e3e13a (diff)
downloadlinux-3.10-74e2134ff892ee4ea4fbd52637060b71e540faf1.tar.gz
linux-3.10-74e2134ff892ee4ea4fbd52637060b71e540faf1.tar.bz2
linux-3.10-74e2134ff892ee4ea4fbd52637060b71e540faf1.zip
SLUB: Fix __GFP_ZERO unlikely() annotation
The unlikely() annotation in slab_alloc() covers too much of the expression. It's actually very likely that the object is not NULL so use unlikely() only for the __GFP_ZERO expression like SLAB does. The patch reduces kernel text by 29 bytes on x86-64: text data bss dec hex filename 24185 8560 176 32921 8099 mm/slub.o.orig 24156 8560 176 32892 807c mm/slub.o Acked-by: Christoph Lameter <cl@linux-foundation.org> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
-rw-r--r--mm/slub.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 4996fc71955..0956396faed 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1735,7 +1735,7 @@ static __always_inline void *slab_alloc(struct kmem_cache *s,
}
local_irq_restore(flags);
- if (unlikely((gfpflags & __GFP_ZERO) && object))
+ if (unlikely(gfpflags & __GFP_ZERO) && object)
memset(object, 0, objsize);
kmemcheck_slab_alloc(s, gfpflags, object, c->objsize);