Commit b1480d3f authored by Andy Whitcroft's avatar Andy Whitcroft Committed by Linus Torvalds

[PATCH] i386 bootmem restrictions

(Comment changes only)

The bootmem allocator is initialised before the kernel virtual address
space has been fully established.  As a result, any allocations which are
made before paging_init() has completed may point to invalid kernel
addresses.  This patch notes this limitation and indicates where the
allocator is fully available.
Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 758638eb
...@@ -1355,7 +1355,12 @@ void __init setup_arch(char **cmdline_p) ...@@ -1355,7 +1355,12 @@ void __init setup_arch(char **cmdline_p)
/* /*
* NOTE: before this point _nobody_ is allowed to allocate * NOTE: before this point _nobody_ is allowed to allocate
* any memory using the bootmem allocator. * any memory using the bootmem allocator. Although the
* alloctor is now initialised only the first 8Mb of the kernel
* virtual address space has been mapped. All allocations before
* paging_init() has completed must use the alloc_bootmem_low_pages()
* variant (which allocates DMA'able memory) and care must be taken
* not to exceed the 8Mb limit.
*/ */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
...@@ -1363,6 +1368,10 @@ void __init setup_arch(char **cmdline_p) ...@@ -1363,6 +1368,10 @@ void __init setup_arch(char **cmdline_p)
#endif #endif
paging_init(); paging_init();
/*
* NOTE: at this point the bootmem allocator is fully available.
*/
#ifdef CONFIG_EARLY_PRINTK #ifdef CONFIG_EARLY_PRINTK
{ {
char *s = strstr(*cmdline_p, "earlyprintk="); char *s = strstr(*cmdline_p, "earlyprintk=");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment