summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-10 11:40:19 +0200
committerRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-10 11:40:19 +0200
commitc4e1f6f6bf82af89994a0ee760fc5e036c4d3c1f (patch)
tree64d5168e48eb879cb7452e80b06b7d7eaa6a709c
parent[PATCH] ARM: Add inline functions to find the pmd from virtual address (diff)
downloadlinux-c4e1f6f6bf82af89994a0ee760fc5e036c4d3c1f.tar.xz
linux-c4e1f6f6bf82af89994a0ee760fc5e036c4d3c1f.zip
[PATCH] ARM: Add top_pmd, which points at the top-most page table
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--arch/arm/mm/mm-armv.c4
-rw-r--r--include/asm-arm/page.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c
index 2a514b05cd5c..fa60fd65fcf8 100644
--- a/arch/arm/mm/mm-armv.c
+++ b/arch/arm/mm/mm-armv.c
@@ -37,6 +37,8 @@ pgprot_t pgprot_kernel;
EXPORT_SYMBOL(pgprot_kernel);
+pmd_t *top_pmd;
+
struct cachepolicy {
const char policy[16];
unsigned int cr_mask;
@@ -682,6 +684,8 @@ void __init memtable_init(struct meminfo *mi)
flush_cache_all();
flush_tlb_all();
+
+ top_pmd = pmd_off_k(VECTORS_HIGH);
}
/*
diff --git a/include/asm-arm/page.h b/include/asm-arm/page.h
index 4ca3a8e9348f..d26d1574d972 100644
--- a/include/asm-arm/page.h
+++ b/include/asm-arm/page.h
@@ -171,6 +171,9 @@ typedef unsigned long pgprot_t;
#endif /* STRICT_MM_TYPECHECKS */
+/* the upper-most page table pointer */
+extern pmd_t *top_pmd;
+
/* Pure 2^n version of get_order */
static inline int get_order(unsigned long size)
{