diff options
author | Tejun Heo <tj@kernel.org> | 2009-02-20 02:29:08 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-02-20 02:29:08 -0500 |
commit | f0aa6617903648077dffe5cfcf7c4458f4610fa7 (patch) | |
tree | c97ab20b953bfea8a6516d741585ea088a8bf7ef /include/linux | |
parent | f2a8205c4ef1af917d175c36a4097ae5587791c8 (diff) |
vmalloc: implement vm_area_register_early()
Impact: allow multiple early vm areas
There are places where kernel VM area needs to be allocated before
vmalloc is initialized. This is done by allocating static vm_struct,
initializing several fields and linking it to vmlist and later vmalloc
initialization picking up these from vmlist. This is currently done
manually and if there's more than one such areas, there's no defined
way to arbitrate who gets which address.
This patch implements vm_area_register_early(), which takes vm_area
struct with flags and size initialized, assigns address to it and puts
it on the vmlist. This way, multiple early vm areas can determine
which addresses they should use. The only current user - alpha mm
init - is converted to use it.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/vmalloc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 506e7620a986..bbc051392298 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h | |||
@@ -106,5 +106,6 @@ extern long vwrite(char *buf, char *addr, unsigned long count); | |||
106 | */ | 106 | */ |
107 | extern rwlock_t vmlist_lock; | 107 | extern rwlock_t vmlist_lock; |
108 | extern struct vm_struct *vmlist; | 108 | extern struct vm_struct *vmlist; |
109 | extern __init void vm_area_register_early(struct vm_struct *vm); | ||
109 | 110 | ||
110 | #endif /* _LINUX_VMALLOC_H */ | 111 | #endif /* _LINUX_VMALLOC_H */ |