diff options
Diffstat (limited to 'arch/mips/mm/pgtable-32.c')
| -rw-r--r-- | arch/mips/mm/pgtable-32.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/mips/mm/pgtable-32.c b/arch/mips/mm/pgtable-32.c index e2a33adc0f29..6416a531a4c3 100644 --- a/arch/mips/mm/pgtable-32.c +++ b/arch/mips/mm/pgtable-32.c @@ -12,6 +12,7 @@  #include <asm/fixmap.h>  #include <asm/pgtable.h>  #include <asm/pgalloc.h> +#include <asm/tlbflush.h>  void pgd_init(unsigned long page)  { @@ -30,6 +31,25 @@ void pgd_init(unsigned long page)  	}  } +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) +pmd_t mk_pmd(struct page *page, pgprot_t prot) +{ +	pmd_t pmd; + +	pmd_val(pmd) = (page_to_pfn(page) << _PFN_SHIFT) | pgprot_val(prot); + +	return pmd; +} + + +void set_pmd_at(struct mm_struct *mm, unsigned long addr, +		pmd_t *pmdp, pmd_t pmd) +{ +	*pmdp = pmd; +	flush_tlb_all(); +} +#endif /* defined(CONFIG_TRANSPARENT_HUGEPAGE) */ +  void __init pagetable_init(void)  {  	unsigned long vaddr;  |