Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable
This commit is contained in:
29
mm/vmalloc.c
29
mm/vmalloc.c
@@ -1117,6 +1117,32 @@ void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t pro
|
||||
}
|
||||
EXPORT_SYMBOL(vm_map_ram);
|
||||
|
||||
/**
|
||||
* vm_area_add_early - add vmap area early during boot
|
||||
* @vm: vm_struct to add
|
||||
*
|
||||
* This function is used to add fixed kernel vm area to vmlist before
|
||||
* vmalloc_init() is called. @vm->addr, @vm->size, and @vm->flags
|
||||
* should contain proper values and the other fields should be zero.
|
||||
*
|
||||
* DO NOT USE THIS FUNCTION UNLESS YOU KNOW WHAT YOU'RE DOING.
|
||||
*/
|
||||
void __init vm_area_add_early(struct vm_struct *vm)
|
||||
{
|
||||
struct vm_struct *tmp, **p;
|
||||
|
||||
BUG_ON(vmap_initialized);
|
||||
for (p = &vmlist; (tmp = *p) != NULL; p = &tmp->next) {
|
||||
if (tmp->addr >= vm->addr) {
|
||||
BUG_ON(tmp->addr < vm->addr + vm->size);
|
||||
break;
|
||||
} else
|
||||
BUG_ON(tmp->addr + tmp->size > vm->addr);
|
||||
}
|
||||
vm->next = *p;
|
||||
*p = vm;
|
||||
}
|
||||
|
||||
/**
|
||||
* vm_area_register_early - register vmap area early during boot
|
||||
* @vm: vm_struct to register
|
||||
@@ -1139,8 +1165,7 @@ void __init vm_area_register_early(struct vm_struct *vm, size_t align)
|
||||
|
||||
vm->addr = (void *)addr;
|
||||
|
||||
vm->next = vmlist;
|
||||
vmlist = vm;
|
||||
vm_area_add_early(vm);
|
||||
}
|
||||
|
||||
void __init vmalloc_init(void)
|
||||
|
Reference in New Issue
Block a user