aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slub.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-09 10:14:36 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-09 10:17:52 -0800
commit7fd272550bd43cc1d7289ef0ab2fa50de137e767 (patch)
tree85c2ae7f4a7f5df3cc2cbd27056ff052ae0de5e2 /mm/slub.c
parentMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev (diff)
downloadlinux-dev-7fd272550bd43cc1d7289ef0ab2fa50de137e767.tar.xz
linux-dev-7fd272550bd43cc1d7289ef0ab2fa50de137e767.zip
Avoid double memclear() in SLOB/SLUB
Both slob and slub react to __GFP_ZERO by clearing the allocation, which means that passing the GFP_ZERO bit down to the page allocator is just wasteful and pointless. Acked-by: Matt Mackall <mpm@selenic.com> Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r--mm/slub.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c
index b9f37cb0f2e6..9c1d9f3b364f 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1468,6 +1468,9 @@ static void *__slab_alloc(struct kmem_cache *s,
void **object;
struct page *new;
+ /* We handle __GFP_ZERO in the caller */
+ gfpflags &= ~__GFP_ZERO;
+
if (!c->page)
goto new_slab;