Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40839
b: refs/heads/master
c: 2b4ac44
h: refs/heads/master
i:
  40837: 6d5d3d6
  40835: fda9125
  40831: 562e845
v: v3
  • Loading branch information
Eric Dumazet authored and Linus Torvalds committed Nov 13, 2006
1 parent e3040e7 commit b5498dd
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 088406bcf66d6c7fd8a5c04c00aa410ae9077403
refs/heads/master: 2b4ac44e7c7e16cf9411b81693ff3e604f332bf1
3 changes: 2 additions & 1 deletion trunk/include/linux/vmalloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ struct vm_area_struct;
#endif

struct vm_struct {
/* keep next,addr,size together to speedup lookups */
struct vm_struct *next;
void *addr;
unsigned long size;
unsigned long flags;
struct page **pages;
unsigned int nr_pages;
unsigned long phys_addr;
struct vm_struct *next;
};

/*
Expand Down
26 changes: 13 additions & 13 deletions trunk/mm/vmalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,8 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long fl
if (unlikely(!area))
return NULL;

if (unlikely(!size)) {
kfree (area);
if (unlikely(!size))
return NULL;
}

/*
* We always allocate a guard page.
Expand Down Expand Up @@ -532,11 +530,12 @@ void *vmalloc_user(unsigned long size)
void *ret;

ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL);
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);

if (ret) {
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);
}
return ret;
}
EXPORT_SYMBOL(vmalloc_user);
Expand Down Expand Up @@ -605,11 +604,12 @@ void *vmalloc_32_user(unsigned long size)
void *ret;

ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL);
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);

if (ret) {
write_lock(&vmlist_lock);
area = __find_vm_area(ret);
area->flags |= VM_USERMAP;
write_unlock(&vmlist_lock);
}
return ret;
}
EXPORT_SYMBOL(vmalloc_32_user);
Expand Down

0 comments on commit b5498dd

Please sign in to comment.