Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/mm
In directory usw-pr-cvs1:/tmp/cvs-serv16646/arch/vax/mm
Modified Files:
ioremap.c
Log Message:
Fixes for pagelet related problems. mk_pte -> mk_pte_phys in ioremap.
Index: ioremap.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/ioremap.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ioremap.c 2001/02/15 01:26:58 1.3
+++ ioremap.c 2001/02/15 16:50:54 1.4
@@ -101,6 +101,7 @@
}
}
}
+
if ((p - start_pte) != num_ptes) {
/* Unable to find contiguous chunk of IOMAP PTEs */
@@ -114,8 +115,14 @@
virt_start = SPTE_TO_VIRT(start_pte);
for (i = 0; i < num_ptes; i++) {
- set_pte( (pte_t *)start_pte++, mk_pte((phys_start+(i*PAGE_SHIFT)),__pgprot(_PAGE_VALID | _PAGE_KW)));
- __flush_tlb_one(virt_start + (i<<PAGELET_SHIFT));
+ set_pte( (pte_t *)start_pte + i,mk_pte_phys((phys_start + i*PAGE_SIZE), __pgprot(_PAGE_VALID | _PAGE_KW)) );
+
+/* asm(" movl %0,r2\n"
+ " movl %1,r3\n"
+ " movl %2,r4\n"
+ " halt" : : "g"(start_pte->pte), "g"(phys_start), "g"(virt_start) );*/
+ /* fixme: tlb flushes for other pagelets */
+ __flush_tlb_one(virt_start + (i<<PAGE_SHIFT));
}
printk("IO mapped phys addr 0x%08lx, 0x%04x pages at virt 0x%08lx (IOMAP PTE index 0x%04x)\n",
|