aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/xen/mmu.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index dc708dcc62f1..afe1d54f980c 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1599,6 +1599,11 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
1599 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) { 1599 for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) {
1600 pte_t pte; 1600 pte_t pte;
1601 1601
1602#ifdef CONFIG_X86_32
1603 if (pfn > max_pfn_mapped)
1604 max_pfn_mapped = pfn;
1605#endif
1606
1602 if (!pte_none(pte_page[pteidx])) 1607 if (!pte_none(pte_page[pteidx]))
1603 continue; 1608 continue;
1604 1609
@@ -1766,7 +1771,9 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
1766 initial_kernel_pmd = 1771 initial_kernel_pmd =
1767 extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE); 1772 extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE);
1768 1773
1769 max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list)); 1774 max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->pt_base) +
1775 xen_start_info->nr_pt_frames * PAGE_SIZE +
1776 512*1024);
1770 1777
1771 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd); 1778 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1772 memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD); 1779 memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);