diff --git a/[refs] b/[refs] index cf7ab07bce01..3a5d009cb2e0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 496850e5f5a372029ceb2b35c811770a9bb073b6 +refs/heads/master: 0ae15132a4f5c758a6ffcde74495641dc3f62ba1 diff --git a/trunk/mm/vmalloc.c b/trunk/mm/vmalloc.c index 04f5e320e744..30f826d484f0 100644 --- a/trunk/mm/vmalloc.c +++ b/trunk/mm/vmalloc.c @@ -324,14 +324,14 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, BUG_ON(size & ~PAGE_MASK); - addr = ALIGN(vstart, align); - va = kmalloc_node(sizeof(struct vmap_area), gfp_mask & GFP_RECLAIM_MASK, node); if (unlikely(!va)) return ERR_PTR(-ENOMEM); retry: + addr = ALIGN(vstart, align); + spin_lock(&vmap_area_lock); /* XXX: could have a last_hole cache */ n = vmap_area_root.rb_node;