diff options
author | Dave McCracken <dmccr@us.ibm.com> | 2006-09-26 02:31:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 11:48:51 -0400 |
commit | 46a82b2d5591335277ed2930611f6acb4ce654ed (patch) | |
tree | e90bc1843701af2012bae92564f7109027a8244f /arch | |
parent | d2e7b7d0aa021847c59f882b066e7d3812902870 (diff) |
[PATCH] Standardize pxx_page macros
One of the changes necessary for shared page tables is to standardize the
pxx_page macros. pte_page and pmd_page have always returned the struct
page associated with their entry, while pte_page_kernel and pmd_page_kernel
have returned the kernel virtual address. pud_page and pgd_page, on the
other hand, return the kernel virtual address.
Shared page tables needs pud_page and pgd_page to return the actual page
structures. There are very few actual users of these functions, so it is
simple to standardize their usage.
Since this is basic cleanup, I am submitting these changes as a standalone
patch. Per Hugh Dickins' comments about it, I am also changing the
pxx_page_kernel macros to pxx_page_vaddr to clarify their meaning.
Signed-off-by: Dave McCracken <dmccr@us.ibm.com>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mm/ioremap.c | 2 | ||||
-rw-r--r-- | arch/sh/mm/cache-sh7705.c | 2 | ||||
-rw-r--r-- | arch/sparc/mm/srmmu.c | 2 | ||||
-rw-r--r-- | arch/sparc/mm/sun4c.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/skas/mmu.c | 2 | ||||
-rw-r--r-- | arch/x86_64/mm/fault.c | 6 |
6 files changed, 8 insertions, 8 deletions
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index 88a999df0ab3..591fc3187c7f 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c | |||
@@ -177,7 +177,7 @@ static void unmap_area_sections(unsigned long virt, unsigned long size) | |||
177 | * Free the page table, if there was one. | 177 | * Free the page table, if there was one. |
178 | */ | 178 | */ |
179 | if ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE) | 179 | if ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE) |
180 | pte_free_kernel(pmd_page_kernel(pmd)); | 180 | pte_free_kernel(pmd_page_vaddr(pmd)); |
181 | } | 181 | } |
182 | 182 | ||
183 | addr += PGDIR_SIZE; | 183 | addr += PGDIR_SIZE; |
diff --git a/arch/sh/mm/cache-sh7705.c b/arch/sh/mm/cache-sh7705.c index ad8ed7d41e16..bf94eedb0a8e 100644 --- a/arch/sh/mm/cache-sh7705.c +++ b/arch/sh/mm/cache-sh7705.c | |||
@@ -30,7 +30,7 @@ | |||
30 | 30 | ||
31 | #define __pte_offset(address) \ | 31 | #define __pte_offset(address) \ |
32 | ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | 32 | ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) |
33 | #define pte_offset(dir, address) ((pte_t *) pmd_page_kernel(*(dir)) + \ | 33 | #define pte_offset(dir, address) ((pte_t *) pmd_page_vaddr(*(dir)) + \ |
34 | __pte_offset(address)) | 34 | __pte_offset(address)) |
35 | 35 | ||
36 | static inline void cache_wback_all(void) | 36 | static inline void cache_wback_all(void) |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 16e13f663ab0..b27a506309ee 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
@@ -2175,7 +2175,7 @@ void __init ld_mmu_srmmu(void) | |||
2175 | 2175 | ||
2176 | BTFIXUPSET_CALL(pte_pfn, srmmu_pte_pfn, BTFIXUPCALL_NORM); | 2176 | BTFIXUPSET_CALL(pte_pfn, srmmu_pte_pfn, BTFIXUPCALL_NORM); |
2177 | BTFIXUPSET_CALL(pmd_page, srmmu_pmd_page, BTFIXUPCALL_NORM); | 2177 | BTFIXUPSET_CALL(pmd_page, srmmu_pmd_page, BTFIXUPCALL_NORM); |
2178 | BTFIXUPSET_CALL(pgd_page, srmmu_pgd_page, BTFIXUPCALL_NORM); | 2178 | BTFIXUPSET_CALL(pgd_page_vaddr, srmmu_pgd_page, BTFIXUPCALL_NORM); |
2179 | 2179 | ||
2180 | BTFIXUPSET_SETHI(none_mask, 0xF0000000); | 2180 | BTFIXUPSET_SETHI(none_mask, 0xF0000000); |
2181 | 2181 | ||
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 7fdddf3c7e16..436021ceb2e7 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
@@ -2280,5 +2280,5 @@ void __init ld_mmu_sun4c(void) | |||
2280 | 2280 | ||
2281 | /* These should _never_ get called with two level tables. */ | 2281 | /* These should _never_ get called with two level tables. */ |
2282 | BTFIXUPSET_CALL(pgd_set, sun4c_pgd_set, BTFIXUPCALL_NOP); | 2282 | BTFIXUPSET_CALL(pgd_set, sun4c_pgd_set, BTFIXUPCALL_NOP); |
2283 | BTFIXUPSET_CALL(pgd_page, sun4c_pgd_page, BTFIXUPCALL_RETO0); | 2283 | BTFIXUPSET_CALL(pgd_page_vaddr, sun4c_pgd_page, BTFIXUPCALL_RETO0); |
2284 | } | 2284 | } |
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c index 624ca238d1fd..79c22707a637 100644 --- a/arch/um/kernel/skas/mmu.c +++ b/arch/um/kernel/skas/mmu.c | |||
@@ -55,7 +55,7 @@ static int init_stub_pte(struct mm_struct *mm, unsigned long proc, | |||
55 | * destroy_context_skas. | 55 | * destroy_context_skas. |
56 | */ | 56 | */ |
57 | 57 | ||
58 | mm->context.skas.last_page_table = pmd_page_kernel(*pmd); | 58 | mm->context.skas.last_page_table = pmd_page_vaddr(*pmd); |
59 | #ifdef CONFIG_3_LEVEL_PGTABLES | 59 | #ifdef CONFIG_3_LEVEL_PGTABLES |
60 | mm->context.skas.last_pmd = (unsigned long) __va(pud_val(*pud)); | 60 | mm->context.skas.last_pmd = (unsigned long) __va(pud_val(*pud)); |
61 | #endif | 61 | #endif |
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c index ac8ea66ccb94..4198798e1469 100644 --- a/arch/x86_64/mm/fault.c +++ b/arch/x86_64/mm/fault.c | |||
@@ -299,7 +299,7 @@ static int vmalloc_fault(unsigned long address) | |||
299 | if (pgd_none(*pgd)) | 299 | if (pgd_none(*pgd)) |
300 | set_pgd(pgd, *pgd_ref); | 300 | set_pgd(pgd, *pgd_ref); |
301 | else | 301 | else |
302 | BUG_ON(pgd_page(*pgd) != pgd_page(*pgd_ref)); | 302 | BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref)); |
303 | 303 | ||
304 | /* Below here mismatches are bugs because these lower tables | 304 | /* Below here mismatches are bugs because these lower tables |
305 | are shared */ | 305 | are shared */ |
@@ -308,7 +308,7 @@ static int vmalloc_fault(unsigned long address) | |||
308 | pud_ref = pud_offset(pgd_ref, address); | 308 | pud_ref = pud_offset(pgd_ref, address); |
309 | if (pud_none(*pud_ref)) | 309 | if (pud_none(*pud_ref)) |
310 | return -1; | 310 | return -1; |
311 | if (pud_none(*pud) || pud_page(*pud) != pud_page(*pud_ref)) | 311 | if (pud_none(*pud) || pud_page_vaddr(*pud) != pud_page_vaddr(*pud_ref)) |
312 | BUG(); | 312 | BUG(); |
313 | pmd = pmd_offset(pud, address); | 313 | pmd = pmd_offset(pud, address); |
314 | pmd_ref = pmd_offset(pud_ref, address); | 314 | pmd_ref = pmd_offset(pud_ref, address); |
@@ -641,7 +641,7 @@ void vmalloc_sync_all(void) | |||
641 | if (pgd_none(*pgd)) | 641 | if (pgd_none(*pgd)) |
642 | set_pgd(pgd, *pgd_ref); | 642 | set_pgd(pgd, *pgd_ref); |
643 | else | 643 | else |
644 | BUG_ON(pgd_page(*pgd) != pgd_page(*pgd_ref)); | 644 | BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref)); |
645 | } | 645 | } |
646 | spin_unlock(&pgd_lock); | 646 | spin_unlock(&pgd_lock); |
647 | set_bit(pgd_index(address), insync); | 647 | set_bit(pgd_index(address), insync); |