aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/mmu.c
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-07-08 18:06:58 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-16 05:02:01 -0400
commit836fe2f291cb450a6193fa713878efe7d32bec6e (patch)
tree4fffc5218fd37fc79f0c127460b6a568608257be /arch/x86/xen/mmu.c
parent8745f8b0b914cf1d617ecc49726c24011858c74e (diff)
xen: use set_pte_vaddr
Make Xen's set_pte_mfn() use set_pte_vaddr rather than copying it. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Mark McLoughlin <markmc@redhat.com> Cc: Stephen Tweedie <sct@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/xen/mmu.c')
-rw-r--r--arch/x86/xen/mmu.c30
1 files changed, 1 insertions, 29 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index a8f02327181..eb31ed291b9 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -282,35 +282,7 @@ void xen_set_pmd(pmd_t *ptr, pmd_t val)
282 */ 282 */
283void set_pte_mfn(unsigned long vaddr, unsigned long mfn, pgprot_t flags) 283void set_pte_mfn(unsigned long vaddr, unsigned long mfn, pgprot_t flags)
284{ 284{
285 pgd_t *pgd; 285 set_pte_vaddr(vaddr, mfn_pte(mfn, flags));
286 pud_t *pud;
287 pmd_t *pmd;
288 pte_t *pte;
289
290 pgd = swapper_pg_dir + pgd_index(vaddr);
291 if (pgd_none(*pgd)) {
292 BUG();
293 return;
294 }
295 pud = pud_offset(pgd, vaddr);
296 if (pud_none(*pud)) {
297 BUG();
298 return;
299 }
300 pmd = pmd_offset(pud, vaddr);
301 if (pmd_none(*pmd)) {
302 BUG();
303 return;
304 }
305 pte = pte_offset_kernel(pmd, vaddr);
306 /* <mfn,flags> stored as-is, to permit clearing entries */
307 xen_set_pte(pte, mfn_pte(mfn, flags));
308
309 /*
310 * It's enough to flush this one mapping.
311 * (PGE mappings get flushed as well)
312 */
313 __flush_tlb_one(vaddr);
314} 286}
315 287
316void xen_set_pte_at(struct mm_struct *mm, unsigned long addr, 288void xen_set_pte_at(struct mm_struct *mm, unsigned long addr,