Commit c6e8b587 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

Update MIPS to use the 4-level pagetable code thereby getting rid of


the compacrapability headers.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 57f0060b
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -139,6 +139,7 @@ void dump_tlb_nonwired(void)
void dump_list_process(struct task_struct *t, void *address)
void dump_list_process(struct task_struct *t, void *address)
{
{
	pgd_t	*page_dir, *pgd;
	pgd_t	*page_dir, *pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte, page;
	pte_t	*pte, page;
	unsigned long addr, val;
	unsigned long addr, val;
@@ -162,7 +163,10 @@ void dump_list_process(struct task_struct *t, void *address)
		pgd = pgd_offset(t->mm, addr);
		pgd = pgd_offset(t->mm, addr);
	printk("pgd == %08x, ", (unsigned int) pgd);
	printk("pgd == %08x, ", (unsigned int) pgd);


	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	printk("pud == %08x, ", (unsigned int) pud);

	pmd = pmd_offset(pud, addr);
	printk("pmd == %08x, ", (unsigned int) pmd);
	printk("pmd == %08x, ", (unsigned int) pmd);


	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
@@ -195,13 +199,15 @@ void dump_list_current(void *address)
unsigned int vtop(void *address)
unsigned int vtop(void *address)
{
{
	pgd_t	*pgd;
	pgd_t	*pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte;
	pte_t	*pte;
	unsigned int addr, paddr;
	unsigned int addr, paddr;


	addr = (unsigned long) address;
	addr = (unsigned long) address;
	pgd = pgd_offset(current->mm, addr);
	pgd = pgd_offset(current->mm, addr);
	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	pmd = pmd_offset(pud, addr);
	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
	paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr |= (addr & ~PAGE_MASK);
	paddr |= (addr & ~PAGE_MASK);
+8 −2
Original line number Original line Diff line number Diff line
@@ -105,6 +105,7 @@ void dump_tlb_nonwired(void)
void dump_list_process(struct task_struct *t, void *address)
void dump_list_process(struct task_struct *t, void *address)
{
{
	pgd_t	*page_dir, *pgd;
	pgd_t	*page_dir, *pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte, page;
	pte_t	*pte, page;
	unsigned int addr;
	unsigned int addr;
@@ -121,7 +122,10 @@ void dump_list_process(struct task_struct *t, void *address)
	pgd = pgd_offset(t->mm, addr);
	pgd = pgd_offset(t->mm, addr);
	printk("pgd == %08x, ", (unsigned int) pgd);
	printk("pgd == %08x, ", (unsigned int) pgd);


	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	printk("pud == %08x, ", (unsigned int) pud);

	pmd = pmd_offset(pud, addr);
	printk("pmd == %08x, ", (unsigned int) pmd);
	printk("pmd == %08x, ", (unsigned int) pmd);


	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
@@ -149,13 +153,15 @@ void dump_list_current(void *address)
unsigned int vtop(void *address)
unsigned int vtop(void *address)
{
{
	pgd_t	*pgd;
	pgd_t	*pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte;
	pte_t	*pte;
	unsigned int addr, paddr;
	unsigned int addr, paddr;


	addr = (unsigned long) address;
	addr = (unsigned long) address;
	pgd = pgd_offset(current->mm, addr);
	pgd = pgd_offset(current->mm, addr);
	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	pmd = pmd_offset(pud, addr);
	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
	paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr |= (addr & ~PAGE_MASK);
	paddr |= (addr & ~PAGE_MASK);
+8 −2
Original line number Original line Diff line number Diff line
@@ -140,6 +140,7 @@ void dump_tlb_nonwired(void)
void dump_list_process(struct task_struct *t, void *address)
void dump_list_process(struct task_struct *t, void *address)
{
{
	pgd_t	*page_dir, *pgd;
	pgd_t	*page_dir, *pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte, page;
	pte_t	*pte, page;
	unsigned long addr, val;
	unsigned long addr, val;
@@ -155,7 +156,10 @@ void dump_list_process(struct task_struct *t, void *address)
	pgd = pgd_offset(t->mm, addr);
	pgd = pgd_offset(t->mm, addr);
	printk("pgd == %016lx\n", (unsigned long) pgd);
	printk("pgd == %016lx\n", (unsigned long) pgd);


	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	printk("pud == %016lx\n", (unsigned long) pud);

	pmd = pmd_offset(pud, addr);
	printk("pmd == %016lx\n", (unsigned long) pmd);
	printk("pmd == %016lx\n", (unsigned long) pmd);


	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
@@ -184,13 +188,15 @@ void dump_list_current(void *address)
unsigned int vtop(void *address)
unsigned int vtop(void *address)
{
{
	pgd_t	*pgd;
	pgd_t	*pgd;
	pud_t	*pud;
	pmd_t	*pmd;
	pmd_t	*pmd;
	pte_t	*pte;
	pte_t	*pte;
	unsigned int addr, paddr;
	unsigned int addr, paddr;


	addr = (unsigned long) address;
	addr = (unsigned long) address;
	pgd = pgd_offset(current->mm, addr);
	pgd = pgd_offset(current->mm, addr);
	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	pmd = pmd_offset(pud, addr);
	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);
	paddr = (CKSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr = (CKSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
	paddr |= (addr & ~PAGE_MASK);
	paddr |= (addr & ~PAGE_MASK);
+3 −1
Original line number Original line Diff line number Diff line
@@ -221,12 +221,14 @@ static inline unsigned long get_phys_page (unsigned long addr,
					   struct mm_struct *mm)
					   struct mm_struct *mm)
{
{
	pgd_t *pgd;
	pgd_t *pgd;
	pud_t *pud;
	pmd_t *pmd;
	pmd_t *pmd;
	pte_t *pte;
	pte_t *pte;
	unsigned long physpage;
	unsigned long physpage;


	pgd = pgd_offset(mm, addr);
	pgd = pgd_offset(mm, addr);
	pmd = pmd_offset(pgd, addr);
	pud = pud_offset(pgd, addr);
	pmd = pmd_offset(pud, addr);
	pte = pte_offset(pmd, addr);
	pte = pte_offset(pmd, addr);


	if ((physpage = pte_val(*pte)) & _PAGE_VALID)
	if ((physpage = pte_val(*pte)) & _PAGE_VALID)
+3 −1
Original line number Original line Diff line number Diff line
@@ -372,12 +372,14 @@ static inline void local_r4k_flush_cache_page(void *args)
	int exec = vma->vm_flags & VM_EXEC;
	int exec = vma->vm_flags & VM_EXEC;
	struct mm_struct *mm = vma->vm_mm;
	struct mm_struct *mm = vma->vm_mm;
	pgd_t *pgdp;
	pgd_t *pgdp;
	pud_t *pudp;
	pmd_t *pmdp;
	pmd_t *pmdp;
	pte_t *ptep;
	pte_t *ptep;


	page &= PAGE_MASK;
	page &= PAGE_MASK;
	pgdp = pgd_offset(mm, page);
	pgdp = pgd_offset(mm, page);
	pmdp = pmd_offset(pgdp, page);
	pudp = pud_offset(pgdp, page);
	pmdp = pmd_offset(pudp, page);
	ptep = pte_offset(pmdp, page);
	ptep = pte_offset(pmdp, page);


	/*
	/*
Loading