Commit ae895ed7 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk

xen/mmu: use copy_page instead of memcpy.

After all, this is what it is there for.
Acked-by: default avatarJan Beulich <jbeulich@suse.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 4fac153a
...@@ -1754,14 +1754,14 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) ...@@ -1754,14 +1754,14 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
* it will be also modified in the __ka space! (But if you just * it will be also modified in the __ka space! (But if you just
* modify the PMD table to point to other PTE's or none, then you * modify the PMD table to point to other PTE's or none, then you
* are OK - which is what cleanup_highmap does) */ * are OK - which is what cleanup_highmap does) */
memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD); copy_page(level2_ident_pgt, l2);
/* Graft it onto L4[511][511] */ /* Graft it onto L4[511][511] */
memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD); copy_page(level2_kernel_pgt, l2);
/* Get [511][510] and graft that in level2_fixmap_pgt */ /* Get [511][510] and graft that in level2_fixmap_pgt */
l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd); l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud); l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD); copy_page(level2_fixmap_pgt, l2);
/* Note that we don't do anything with level1_fixmap_pgt which /* Note that we don't do anything with level1_fixmap_pgt which
* we don't need. */ * we don't need. */
...@@ -1821,8 +1821,7 @@ static void __init xen_write_cr3_init(unsigned long cr3) ...@@ -1821,8 +1821,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
*/ */
swapper_kernel_pmd = swapper_kernel_pmd =
extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE); extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE);
memcpy(swapper_kernel_pmd, initial_kernel_pmd, copy_page(swapper_kernel_pmd, initial_kernel_pmd);
sizeof(pmd_t) * PTRS_PER_PMD);
swapper_pg_dir[KERNEL_PGD_BOUNDARY] = swapper_pg_dir[KERNEL_PGD_BOUNDARY] =
__pgd(__pa(swapper_kernel_pmd) | _PAGE_PRESENT); __pgd(__pa(swapper_kernel_pmd) | _PAGE_PRESENT);
set_page_prot(swapper_kernel_pmd, PAGE_KERNEL_RO); set_page_prot(swapper_kernel_pmd, PAGE_KERNEL_RO);
...@@ -1851,11 +1850,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) ...@@ -1851,11 +1850,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
512*1024); 512*1024);
kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd); kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD); copy_page(initial_kernel_pmd, kernel_pmd);
xen_map_identity_early(initial_kernel_pmd, max_pfn); xen_map_identity_early(initial_kernel_pmd, max_pfn);
memcpy(initial_page_table, pgd, sizeof(pgd_t) * PTRS_PER_PGD); copy_page(initial_page_table, pgd);
initial_page_table[KERNEL_PGD_BOUNDARY] = initial_page_table[KERNEL_PGD_BOUNDARY] =
__pgd(__pa(initial_kernel_pmd) | _PAGE_PRESENT); __pgd(__pa(initial_kernel_pmd) | _PAGE_PRESENT);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment