diff --git a/[refs] b/[refs] index b20c2df58117..0a15b9040de9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 94545baded0bfbabdc30a3a4cb48b3db479dd6ef +refs/heads/master: 7fd272550bd43cc1d7289ef0ab2fa50de137e767 diff --git a/trunk/mm/slob.c b/trunk/mm/slob.c index ee2ef8af0d43..773a7aa80ab5 100644 --- a/trunk/mm/slob.c +++ b/trunk/mm/slob.c @@ -330,7 +330,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node) /* Not enough space: must allocate a new page */ if (!b) { - b = slob_new_page(gfp, 0, node); + b = slob_new_page(gfp & ~__GFP_ZERO, 0, node); if (!b) return 0; sp = (struct slob_page *)virt_to_page(b); diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index b9f37cb0f2e6..9c1d9f3b364f 100644 --- a/trunk/mm/slub.c +++ b/trunk/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;