From 47c4e33ff1162dce82aeba991829e0ae7a0ca909 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 27 Sep 2006 01:50:03 -0700 Subject: [PATCH] --- yaml --- r: 36148 b: refs/heads/master c: de3083ec3e6bfb1ab60bc8a410f37702529f953c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/slab.c | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 5dcc698cee50..cdb13b40d826 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0fd0e6b05aa096622f151cac2f81f2e6844fb1bb +refs/heads/master: de3083ec3e6bfb1ab60bc8a410f37702529f953c diff --git a/trunk/mm/slab.c b/trunk/mm/slab.c index c52ebf9c4462..69e11c45002f 100644 --- a/trunk/mm/slab.c +++ b/trunk/mm/slab.c @@ -3028,14 +3028,6 @@ static inline void *____cache_alloc(struct kmem_cache *cachep, gfp_t flags) void *objp; struct array_cache *ac; -#ifdef CONFIG_NUMA - if (unlikely(current->flags & (PF_SPREAD_SLAB | PF_MEMPOLICY))) { - objp = alternate_node_alloc(cachep, flags); - if (objp != NULL) - return objp; - } -#endif - check_irq_off(); ac = cpu_cache_get(cachep); if (likely(ac->avail)) { @@ -3053,12 +3045,19 @@ static __always_inline void *__cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller) { unsigned long save_flags; - void *objp; + void *objp = NULL; cache_alloc_debugcheck_before(cachep, flags); local_irq_save(save_flags); - objp = ____cache_alloc(cachep, flags); + +#ifdef CONFIG_NUMA + if (unlikely(current->flags & (PF_SPREAD_SLAB | PF_MEMPOLICY))) + objp = alternate_node_alloc(cachep, flags); +#endif + + if (!objp) + objp = ____cache_alloc(cachep, flags); local_irq_restore(save_flags); objp = cache_alloc_debugcheck_after(cachep, flags, objp, caller);