diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c index 2a514b05cd5cc4ff6164e9944047da8b029c33a3..fa60fd65fcf844c995411156e8a5c169f6abad2e 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 4ca3a8e9348f53becec9d7969d8c73d0f64a3d3a..d26d1574d972ecb8043f7525d77b1d98e8e021c4 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) {