projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier...
[linux-2.6-block.git]
/
mm
/
vmalloc.c
diff --git
a/mm/vmalloc.c
b/mm/vmalloc.c
index 0f551a4a44cddc7a042d47bbcd85c7126569ee69..37e69295f250d585b1a2f7e9bf38f80b7186cdbb 100644
(file)
--- a/
mm/vmalloc.c
+++ b/
mm/vmalloc.c
@@
-761,7
+761,7
@@
static struct vmap_block *new_vmap_block(gfp_t gfp_mask)
spin_lock(&vbq->lock);
list_add(&vb->free_list, &vbq->free);
spin_unlock(&vbq->lock);
spin_lock(&vbq->lock);
list_add(&vb->free_list, &vbq->free);
spin_unlock(&vbq->lock);
- put_cpu_var(vmap_
cpu_blocks
);
+ put_cpu_var(vmap_
block_queue
);
return vb;
}
return vb;
}
@@
-826,7
+826,7
@@
again:
}
spin_unlock(&vb->lock);
}
}
spin_unlock(&vb->lock);
}
- put_cpu_var(vmap_
cpu_blocks
);
+ put_cpu_var(vmap_
block_queue
);
rcu_read_unlock();
if (!addr) {
rcu_read_unlock();
if (!addr) {
@@
-1411,6
+1411,7
@@
static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
{
struct page **pages;
unsigned int nr_pages, array_size, i;
{
struct page **pages;
unsigned int nr_pages, array_size, i;
+ gfp_t nested_gfp = (gfp_mask & GFP_RECLAIM_MASK) | __GFP_ZERO;
nr_pages = (area->size - PAGE_SIZE) >> PAGE_SHIFT;
array_size = (nr_pages * sizeof(struct page *));
nr_pages = (area->size - PAGE_SIZE) >> PAGE_SHIFT;
array_size = (nr_pages * sizeof(struct page *));
@@
-1418,13
+1419,11
@@
static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
area->nr_pages = nr_pages;
/* Please note that the recursion is strictly bounded. */
if (array_size > PAGE_SIZE) {
area->nr_pages = nr_pages;
/* Please note that the recursion is strictly bounded. */
if (array_size > PAGE_SIZE) {
- pages = __vmalloc_node(array_size, 1,
gfp_mask | __GFP_ZERO
,
+ pages = __vmalloc_node(array_size, 1,
nested_gfp|__GFP_HIGHMEM
,
PAGE_KERNEL, node, caller);
area->flags |= VM_VPAGES;
} else {
PAGE_KERNEL, node, caller);
area->flags |= VM_VPAGES;
} else {
- pages = kmalloc_node(array_size,
- (gfp_mask & GFP_RECLAIM_MASK) | __GFP_ZERO,
- node);
+ pages = kmalloc_node(array_size, nested_gfp, node);
}
area->pages = pages;
area->caller = caller;
}
area->pages = pages;
area->caller = caller;