x86: implement set_pte_vaddr

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Jeremy Fitzhardinge
2008-06-17 11:41:59 -07:00
committed by Ingo Molnar
parent 7c7e6e07e2
commit d494a96125
4 changed files with 11 additions and 9 deletions

View File

@@ -135,15 +135,15 @@ static __init void *spp_getpage(void)
return ptr;
}
static void
set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot)
void
set_pte_vaddr(unsigned long vaddr, pte_t new_pte)
{
pgd_t *pgd;
pud_t *pud;
pmd_t *pmd;
pte_t *pte, new_pte;
pte_t *pte;
pr_debug("set_pte_phys %lx to %lx\n", vaddr, phys);
pr_debug("set_pte_vaddr %lx to %lx\n", vaddr, native_pte_val(new_pte));
pgd = pgd_offset_k(vaddr);
if (pgd_none(*pgd)) {
@@ -170,7 +170,6 @@ set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot)
return;
}
}
new_pte = pfn_pte(phys >> PAGE_SHIFT, prot);
pte = pte_offset_kernel(pmd, vaddr);
if (!pte_none(*pte) && pte_val(new_pte) &&