x86: Fix system crash when loading with "reservetop" parameter
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Thu, 20 Aug 2009 12:23:11 +0000 (20:23 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 21 Aug 2009 14:40:30 +0000 (16:40 +0200)
commit8126dec32738421afa362114337331337b4be17f
tree2de6e2c7f543d2b750ab5402ec8046d9b929211f
parentfc0ce23506d943b9eaa731a051769d0e0605eb03
x86: Fix system crash when loading with "reservetop" parameter

The system will die if the kernel is booted with "reservetop"
parameter, in present code, parse "reservetop" parameter after
early_ioremap_init(), and some function still use
early_ioremap() after it.

The problem is, "reservetop" parameter can modify
'FIXADDR_TOP', then the virtual address got by early_ioremap()
is base on old 'FIXADDR_TOP', but the page mapping is base on
new 'FIXADDR_TOP', it will occur page fault, and the IDT is not
prepare yet, so, the system is dead.

So, put parse_early_param() in the front of
early_ioremap_init() in this patch.

Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Cc: yinghai@kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4A8D402F.4080805@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/setup.c