fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / mips / lib-64 / dump_tlb.c
index eb0b6cf..594df1a 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle.
  * Copyright (C) 1999 by Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
@@ -32,6 +31,8 @@ static inline const char *msk2str(unsigned int mask)
        case PM_256M:   return "256Mb";
 #endif
        }
+
+       return "unknown";
 }
 
 #define BARRIER()                                      \
@@ -138,6 +139,7 @@ void dump_tlb_nonwired(void)
 void dump_list_process(struct task_struct *t, void *address)
 {
        pgd_t   *page_dir, *pgd;
+       pud_t   *pud;
        pmd_t   *pmd;
        pte_t   *pte, page;
        unsigned long addr, val;
@@ -147,17 +149,20 @@ void dump_list_process(struct task_struct *t, void *address)
        printk("Addr                 == %08lx\n", addr);
        printk("tasks->mm.pgd        == %08lx\n", (unsigned long) t->mm->pgd);
 
-       page_dir = pgd_offset(t->mm, 0);
-       printk("page_dir == %08lx\n", (unsigned long) page_dir);
+       page_dir = pgd_offset(t->mm, 0UL);
+       printk("page_dir == %016lx\n", (unsigned long) page_dir);
 
        pgd = pgd_offset(t->mm, addr);
-       printk("pgd == %08lx, ", (unsigned long) pgd);
+       printk("pgd == %016lx\n", (unsigned long) pgd);
+
+       pud = pud_offset(pgd, addr);
+       printk("pud == %016lx\n", (unsigned long) pud);
 
-       pmd = pmd_offset(pgd, addr);
-       printk("pmd == %08lx, ", (unsigned long) pmd);
+       pmd = pmd_offset(pud, addr);
+       printk("pmd == %016lx\n", (unsigned long) pmd);
 
        pte = pte_offset(pmd, addr);
-       printk("pte == %08lx, ", (unsigned long) pte);
+       printk("pte == %016lx\n", (unsigned long) pte);
 
        page = *pte;
        printk("page == %08lx\n", pte_val(page));
@@ -179,18 +184,20 @@ void dump_list_current(void *address)
        dump_list_process(current, address);
 }
 
-unsigned int vtop(void *address)
+unsigned long vtop(void *address)
 {
        pgd_t   *pgd;
+       pud_t   *pud;
        pmd_t   *pmd;
        pte_t   *pte;
-       unsigned int addr, paddr;
+       unsigned long addr, paddr;
 
        addr = (unsigned long) address;
        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);
-       paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
+       paddr = (CKSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK;
        paddr |= (addr & ~PAGE_MASK);
 
        return paddr;