vmalloc: implement vm_area_register_early()
authorTejun Heo <tj@kernel.org>
Fri, 20 Feb 2009 07:29:08 +0000 (16:29 +0900)
committerTejun Heo <tj@kernel.org>
Fri, 20 Feb 2009 07:29:08 +0000 (16:29 +0900)
commitf0aa6617903648077dffe5cfcf7c4458f4610fa7
treec97ab20b953bfea8a6516d741585ea088a8bf7ef
parentf2a8205c4ef1af917d175c36a4097ae5587791c8
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>
arch/alpha/mm/init.c
include/linux/vmalloc.h
mm/vmalloc.c