X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=mm%2Fslub.c;h=9acb413858ac532e9a668d4d2b351f4acdbd14c3;hb=be5fb270125729b7bca7879967f1dfadff0d9841;hp=bcdb2c8941a5fcb428d4d3d256106f29e921debd;hpb=27bb628a1d759cc82ff6360becf61de601907811;p=linux-2.6-omap-h63xx.git diff --git a/mm/slub.c b/mm/slub.c index bcdb2c8941a..9acb413858a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1080,7 +1080,6 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) struct page *page; struct kmem_cache_node *n; void *start; - void *end; void *last; void *p; @@ -1101,7 +1100,6 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) SetSlabDebug(page); start = page_address(page); - end = start + s->objects * s->size; if (unlikely(s->flags & SLAB_POISON)) memset(start, POISON_INUSE, PAGE_SIZE << s->order); @@ -1511,26 +1509,8 @@ new_slab: if (new) { c = get_cpu_slab(s, smp_processor_id()); - if (c->page) { - /* - * Someone else populated the cpu_slab while we - * enabled interrupts, or we have gotten scheduled - * on another cpu. The page may not be on the - * requested node even if __GFP_THISNODE was - * specified. So we need to recheck. - */ - if (node_match(c, node)) { - /* - * Current cpuslab is acceptable and we - * want the current one since its cache hot - */ - discard_slab(s, new); - slab_lock(c->page); - goto load_freelist; - } - /* New slab does not fit our expectations */ + if (c->page) flush_slab(s, c); - } slab_lock(new); SetSlabFrozen(new); c->page = new;