Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 99839
b: refs/heads/master
c: d494a96
h: refs/heads/master
i:
  99837: 2368371
  99835: b3f5a2c
  99831: 762ca6e
  99823: 25c9225
  99807: f689e2e
  99775: 8526bb5
  99711: 7b07a8d
  99583: 1dde882
  99327: e206a8a
v: v3
  • Loading branch information
Jeremy Fitzhardinge authored and Ingo Molnar committed Jun 20, 2008
1 parent a8fb496 commit 68d3e05
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7c7e6e07e2a7c0d2d96389f4f0540e44a80ecdaa
refs/heads/master: d494a96125c99f1e37b1f831b29b42c9b712ee05
9 changes: 4 additions & 5 deletions trunk/arch/x86/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand All @@ -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) &&
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/mm/pgtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,6 @@ void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
BUG();
return;
}
set_pte_pfn(address, phys >> PAGE_SHIFT, flags);
set_pte_vaddr(address, pfn_pte(phys >> PAGE_SHIFT, flags));
fixmaps_set++;
}
6 changes: 3 additions & 3 deletions trunk/arch/x86/mm/pgtable_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ void show_mem(void)
* Associate a virtual page frame with a given physical page frame
* and protection flags for that frame.
*/
static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
{
pgd_t *pgd;
pud_t *pud;
Expand All @@ -94,8 +94,8 @@ static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
return;
}
pte = pte_offset_kernel(pmd, vaddr);
if (pgprot_val(flags))
set_pte_present(&init_mm, vaddr, pte, pfn_pte(pfn, flags));
if (pte_val(pteval))
set_pte_present(&init_mm, vaddr, pte, pteval);
else
pte_clear(&init_mm, vaddr, pte);

Expand Down
3 changes: 3 additions & 0 deletions trunk/include/asm-x86/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,9 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t *vma_prot);
#endif

/* Install a pte for a particular vaddr in kernel space. */
void set_pte_vaddr(unsigned long vaddr, pte_t pte);

#ifdef CONFIG_PARAVIRT
#include <asm/paravirt.h>
#else /* !CONFIG_PARAVIRT */
Expand Down

0 comments on commit 68d3e05

Please sign in to comment.