Commit 15f4ae0c authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] run page_address_init() earlier

If someone runs page_address() before page_address_init(), the kernel locks
up over uninitialised spinlocks.

This only happens with the 4:4 patch, but it is more robust to run
page_address_init() before setup_arch().  page_address_init() simply
initialises statically allocated storage.
parent 840d5d40
...@@ -409,6 +409,7 @@ asmlinkage void __init start_kernel(void) ...@@ -409,6 +409,7 @@ asmlinkage void __init start_kernel(void)
* enable them * enable them
*/ */
lock_kernel(); lock_kernel();
page_address_init();
printk(linux_banner); printk(linux_banner);
setup_arch(&command_line); setup_arch(&command_line);
setup_per_cpu_areas(); setup_per_cpu_areas();
...@@ -452,7 +453,6 @@ asmlinkage void __init start_kernel(void) ...@@ -452,7 +453,6 @@ asmlinkage void __init start_kernel(void)
initrd_start = 0; initrd_start = 0;
} }
#endif #endif
page_address_init();
mem_init(); mem_init();
kmem_cache_init(); kmem_cache_init();
if (late_time_init) if (late_time_init)
......
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