提交 fb1d8404 编写于 作者: J Jeremy Fitzhardinge 提交者: Jeremy Fitzhardinge

xen: ask the hypervisor how much space it needs reserved

Ask the hypervisor how much space it needs reserved, since 32-on-64
doesn't need any space, and it may change in future.
Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
上级 74260714
......@@ -1112,6 +1112,17 @@ static const struct machine_ops __initdata xen_machine_ops = {
};
static void __init xen_reserve_top(void)
{
unsigned long top = HYPERVISOR_VIRT_START;
struct xen_platform_parameters pp;
if (HYPERVISOR_xen_version(XENVER_platform_parameters, &pp) == 0)
top = pp.virt_start;
reserve_top_address(-top + 2 * PAGE_SIZE);
}
/* First C function to be called on Xen boot */
asmlinkage void __init xen_start_kernel(void)
{
......@@ -1169,7 +1180,7 @@ asmlinkage void __init xen_start_kernel(void)
pv_info.kernel_rpl = 0;
/* set the limit of our address space */
reserve_top_address(-HYPERVISOR_VIRT_START + 2 * PAGE_SIZE);
xen_reserve_top();
/* set up basic CPUID stuff */
cpu_detect(&new_cpu_data);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册