Loading arch/x86/mm/init_64.c +4 −5 Original line number Diff line number Diff line Loading @@ -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)) { Loading @@ -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) && Loading arch/x86/mm/pgtable.c +1 −1 Original line number Diff line number Diff line Loading @@ -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++; } arch/x86/mm/pgtable_32.c +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading include/asm-x86/pgtable.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading
arch/x86/mm/init_64.c +4 −5 Original line number Diff line number Diff line Loading @@ -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)) { Loading @@ -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) && Loading
arch/x86/mm/pgtable.c +1 −1 Original line number Diff line number Diff line Loading @@ -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++; }
arch/x86/mm/pgtable_32.c +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading
include/asm-x86/pgtable.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading