Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / arch / mips / lib-64 / dump_tlb.c
index eb0b6cf..11a5f01 100644 (file)
@@ -32,6 +32,8 @@ static inline const char *msk2str(unsigned int mask)
        case PM_256M:   return "256Mb";
 #endif
        }
+
+       return "unknown";
 }
 
 #define BARRIER()                                      \
@@ -138,6 +140,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;
@@ -148,16 +151,19 @@ void dump_list_process(struct task_struct *t, void *address)
        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);
+       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));
@@ -182,15 +188,17 @@ void dump_list_current(void *address)
 unsigned int vtop(void *address)
 {
        pgd_t   *pgd;
+       pud_t   *pud;
        pmd_t   *pmd;
        pte_t   *pte;
        unsigned int 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;