I am trying to bring up Linux-3.4.1 on our cutom MIPS based hardware. It hung after printing the line
VFS:Mounted root (ubifs filesystem)
On further debugging, it was found that kernel is hanging in free_init_mem() [arch/mips/mm/init.c] . My debug prints to determine the place of hang in free_init_mem is as below :
Freeing unused kernel memory: 8038e000 - 803bb000
Freeing unused kernel memory: 8038e000 page
Freeing unused kernel memory: 8038f000 page
Freeing unused kernel memory: 80390000 page
Freeing unused kernel memory: 80391000 page
Freeing unused kernel memory: 80392000 page
Freeing unused kernel memory: 80393000 page
Freeing unused kernel memory: 80394000 page
.....
Freeing unused kernel memory: 803b4000 page
<hang>
Any help to debug the above hang will be very useful.
Just some random guessing: since it hangs after freeing the init memory, I would suspect that some code is incorrectly marked
__init, or some data is incorrectly marked__initdata. So the corresponding pages are freed, and the kernel crashes when it needs this data.I guess you’ve done some custom kernel code to support your MIPS hardware. Double check your code to ensure that you haven’t made some mistakes on this.