diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2012-07-26 11:02:27 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-26 16:46:17 -0700 |
commit | 9a4d5b93cb67b63d896579f416109274235a7a65 (patch) | |
tree | 5ea825ceebd3e62396befb1a76607c4eb5719da7 /arch/sparc/mm/highmem.c | |
parent | d8a1b2b94ca5fe219b3c77389e2424145c24c668 (diff) |
sparc32: move kmap_init() to highmem.c
Try to keep highmem support in a more central place.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/mm/highmem.c')
-rw-r--r-- | arch/sparc/mm/highmem.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c index 4d5f8b3c409..449f864f0ce 100644 --- a/arch/sparc/mm/highmem.c +++ b/arch/sparc/mm/highmem.c @@ -31,6 +31,23 @@ #include <asm/pgalloc.h> #include <asm/vaddrs.h> +pgprot_t kmap_prot; + +static pte_t *kmap_pte; + +void __init kmap_init(void) +{ + unsigned long address; + pmd_t *dir; + + address = __fix_to_virt(FIX_KMAP_BEGIN); + dir = pmd_offset(pgd_offset_k(address), address); + + /* cache the first kmap pte */ + kmap_pte = pte_offset_kernel(dir, address); + kmap_prot = __pgprot(SRMMU_ET_PTE | SRMMU_PRIV | SRMMU_CACHE); +} + void *kmap_atomic(struct page *page) { unsigned long vaddr; |