xen: fix dom0 boot on huge systems
[sfrench/cifs-2.6.git] / arch / x86 / xen / mmu_pv.c
index 0f4fe206dcc2015ce212b19c8865b06f854fb3b1..20701977e6c055034f4904c8d64d241ec8675b9e 100644 (file)
@@ -2114,10 +2114,10 @@ void __init xen_relocate_p2m(void)
                                pt = early_memremap(pt_phys, PAGE_SIZE);
                                clear_page(pt);
                                for (idx_pte = 0;
-                                               idx_pte < min(n_pte, PTRS_PER_PTE);
-                                               idx_pte++) {
-                                       set_pte(pt + idx_pte,
-                                                       pfn_pte(p2m_pfn, PAGE_KERNEL));
+                                    idx_pte < min(n_pte, PTRS_PER_PTE);
+                                    idx_pte++) {
+                                       pt[idx_pte] = pfn_pte(p2m_pfn,
+                                                             PAGE_KERNEL);
                                        p2m_pfn++;
                                }
                                n_pte -= PTRS_PER_PTE;
@@ -2125,8 +2125,7 @@ void __init xen_relocate_p2m(void)
                                make_lowmem_page_readonly(__va(pt_phys));
                                pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE,
                                                PFN_DOWN(pt_phys));
-                               set_pmd(pmd + idx_pt,
-                                               __pmd(_PAGE_TABLE | pt_phys));
+                               pmd[idx_pt] = __pmd(_PAGE_TABLE | pt_phys);
                                pt_phys += PAGE_SIZE;
                        }
                        n_pt -= PTRS_PER_PMD;
@@ -2134,7 +2133,7 @@ void __init xen_relocate_p2m(void)
                        make_lowmem_page_readonly(__va(pmd_phys));
                        pin_pagetable_pfn(MMUEXT_PIN_L2_TABLE,
                                        PFN_DOWN(pmd_phys));
-                       set_pud(pud + idx_pmd, __pud(_PAGE_TABLE | pmd_phys));
+                       pud[idx_pmd] = __pud(_PAGE_TABLE | pmd_phys);
                        pmd_phys += PAGE_SIZE;
                }
                n_pmd -= PTRS_PER_PUD;