From be1545db0f53f55d1f7ddae86f3b9f0fb13d8377 Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Wed, 15 Sep 2010 13:32:49 -0700 Subject: [PATCH] --- yaml --- r: 217855 b: refs/heads/master c: 2f7acb208523a3bf5f1830f01c29f7feda045169 h: refs/heads/master i: 217853: a16541732d245a7d74c88da7e8a10fef2d65391c 217851: 797fba65a87e3bf485be26a8baa3669b02710e3e 217847: d319bb88991ef4959f40fb5bf764638e53842cfd 217839: 5217f24b2f97141bec85d0c04ad2ec4c3a8b5aff 217823: c0f0bc16a04459166bc27daefa5ca5dbfd012249 217791: 0b2e44e35e3e26af74f301f875e684745d7a3b75 217727: 22b7726afc8bf2b29ef1794012e51be1cbdf25fc 217599: 478c209b0657fe921ba4de3b93bf898a23dc84b6 v: v3 --- [refs] | 2 +- trunk/arch/x86/xen/mmu.c | 8 ++++---- trunk/arch/x86/xen/setup.c | 2 ++ trunk/arch/x86/xen/xen-ops.h | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 23f837379d22..acbabb4bb0dd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 698bb8d14a5b577b6841acaccdf5095d3b7c7389 +refs/heads/master: 2f7acb208523a3bf5f1830f01c29f7feda045169 diff --git a/trunk/arch/x86/xen/mmu.c b/trunk/arch/x86/xen/mmu.c index 4c63b7f452dd..b2371671b11c 100644 --- a/trunk/arch/x86/xen/mmu.c +++ b/trunk/arch/x86/xen/mmu.c @@ -195,7 +195,7 @@ DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */ * 512 and 1024 entries respectively. */ -static unsigned long max_p2m_pfn __read_mostly; +unsigned long xen_max_p2m_pfn __read_mostly; #define P2M_PER_PAGE (PAGE_SIZE / sizeof(unsigned long)) #define P2M_MID_PER_PAGE (PAGE_SIZE / sizeof(unsigned long *)) @@ -293,7 +293,7 @@ void xen_build_mfn_list_list(void) p2m_top_mfn_init(p2m_top_mfn); } - for (pfn = 0; pfn < max_p2m_pfn; pfn += P2M_PER_PAGE) { + for (pfn = 0; pfn < xen_max_p2m_pfn; pfn += P2M_PER_PAGE) { unsigned topidx = p2m_top_index(pfn); unsigned mididx = p2m_mid_index(pfn); unsigned long **mid; @@ -335,7 +335,7 @@ void xen_setup_mfn_list_list(void) HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list = virt_to_mfn(p2m_top_mfn); - HYPERVISOR_shared_info->arch.max_pfn = max_p2m_pfn; + HYPERVISOR_shared_info->arch.max_pfn = xen_max_p2m_pfn; } /* Set up p2m_top to point to the domain-builder provided p2m pages */ @@ -345,7 +345,7 @@ void __init xen_build_dynamic_phys_to_machine(void) unsigned long max_pfn = min(MAX_DOMAIN_PAGES, xen_start_info->nr_pages); unsigned pfn; - max_p2m_pfn = max_pfn; + xen_max_p2m_pfn = max_pfn; p2m_missing = extend_brk(PAGE_SIZE, PAGE_SIZE); p2m_init(p2m_missing); diff --git a/trunk/arch/x86/xen/setup.c b/trunk/arch/x86/xen/setup.c index 6c9039e92f81..cad2fcd130ec 100644 --- a/trunk/arch/x86/xen/setup.c +++ b/trunk/arch/x86/xen/setup.c @@ -64,6 +64,8 @@ static __init void xen_add_extra_mem(unsigned long pages) "XEN EXTRA"); xen_extra_mem_size += size; + + xen_max_p2m_pfn = PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size); } static unsigned long __init xen_release_chunk(phys_addr_t start_addr, diff --git a/trunk/arch/x86/xen/xen-ops.h b/trunk/arch/x86/xen/xen-ops.h index 7c8ab86163e9..d505e98e03f8 100644 --- a/trunk/arch/x86/xen/xen-ops.h +++ b/trunk/arch/x86/xen/xen-ops.h @@ -30,6 +30,7 @@ void xen_setup_machphys_mapping(void); pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn); void xen_ident_map_ISA(void); void xen_reserve_top(void); +extern unsigned long xen_max_p2m_pfn; char * __init xen_memory_setup(void); void __init xen_arch_setup(void);