Update of /cvsroot/linux-vax/kernel-2.5/include/asm-vax/mm
In directory sc8-pr-cvs1:/tmp/cvs-serv14542
Modified Files:
page.h
Log Message:
Redefine MAP_NR() and virt_to_page() such that they work for _any_ S0
address, not just the "identity-mapped" addresses from PAGE_OFFSET to
PAGE_OFFSET + RAM_SIZE. VM_DATA_DEFAULT_FLAGS also defined as required
in 2.5.5
Index: page.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.5/include/asm-vax/mm/page.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- page.h 20 May 2002 00:33:39 -0000 1.3
+++ page.h 2 Dec 2002 00:10:23 -0000 1.4
@@ -79,9 +79,16 @@
#define PAGE_OFFSET __PAGE_OFFSET
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
-#define MAP_NR(addr) (__pa(addr) >> PAGE_SHIFT)
-#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
+
+/* Find this SPTE for addr and extract the PFN from that. This is safe
+ to use for _any_ S0 address */
+#define MAP_NR(addr) (((GET_HWSPTE_VIRT(addr))->hwpte & PAGELET_PFN_MASK) >> 3)
+
+#define virt_to_page(kaddr) (mem_map + MAP_NR(kaddr))
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
+
+#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
+ VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
|