aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/e820.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-09-22 08:14:48 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-09-22 08:14:48 +0100
commit615588563e99a23aaf37037c3fee0c413b051f4d (patch)
tree392aac04e69362a6cd1cf0aaaf966a47a79b835a /xen/arch/x86/e820.c
parentd189c54b3d4dbeb3562230d664b006908b4dfba0 (diff)
downloadxen-615588563e99a23aaf37037c3fee0c413b051f4d.tar.gz
xen-615588563e99a23aaf37037c3fee0c413b051f4d.tar.bz2
xen-615588563e99a23aaf37037c3fee0c413b051f4d.zip
x86-64: extend manageable memory range to 5Tb
Extend the virtual range reserved for the 1:1 mapping to cover 5Tb, and make the virtual size of the frame table gets match whatever the 1:1 table can cover. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/e820.c')
-rw-r--r--xen/arch/x86/e820.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index b87990a7f4..71d74aaa80 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -500,15 +500,19 @@ static void __init machine_specific_memory_setup(
"can be accessed by Xen in 32-bit mode.");
#else
{
- unsigned long limit, mpt_limit, pft_limit;
+ unsigned long limit, mpt_limit, ro_mpt_limit, pft_limit;
limit = DIRECTMAP_VIRT_END - DIRECTMAP_VIRT_START;
mpt_limit = ((RDWR_MPT_VIRT_END - RDWR_MPT_VIRT_START)
/ sizeof(unsigned long)) << PAGE_SHIFT;
+ ro_mpt_limit = ((RO_MPT_VIRT_END - RO_MPT_VIRT_START)
+ / sizeof(unsigned long)) << PAGE_SHIFT;
pft_limit = ((FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START)
/ sizeof(struct page_info)) << PAGE_SHIFT;
if ( limit > mpt_limit )
limit = mpt_limit;
+ if ( limit > ro_mpt_limit )
+ limit = ro_mpt_limit;
if ( limit > pft_limit )
limit = pft_limit;
clip_to_limit(limit,