diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-02 09:46:27 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-26 15:06:14 -0500 |
commit | de27c308223dc9bd48de9742c7c2b53a15c1b012 (patch) | |
tree | d32acbc71110b1e727abd80620f95f14565b6031 /arch/arm/mm/copypage-v6.c | |
parent | dcd6c92267155e70a94b3927bce681ce74b80d1f (diff) |
ARM: pgtable: move TOP_PTE address definitions to arch/arm/mm/mm.h
Move the TOP_PTE address definitions to one central place so that it's
easy to discover what they're being used for. This helps to ensure
that there are no overlaps.
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/copypage-v6.c')
-rw-r--r-- | arch/arm/mm/copypage-v6.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 3d9a1552cef..c00a7501443 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c | |||
@@ -24,9 +24,6 @@ | |||
24 | #error FIX ME | 24 | #error FIX ME |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | #define from_address (0xffff8000) | ||
28 | #define to_address (0xffffc000) | ||
29 | |||
30 | static DEFINE_RAW_SPINLOCK(v6_lock); | 27 | static DEFINE_RAW_SPINLOCK(v6_lock); |
31 | 28 | ||
32 | /* | 29 | /* |
@@ -90,11 +87,11 @@ static void v6_copy_user_highpage_aliasing(struct page *to, | |||
90 | */ | 87 | */ |
91 | raw_spin_lock(&v6_lock); | 88 | raw_spin_lock(&v6_lock); |
92 | 89 | ||
93 | set_pte_ext(TOP_PTE(from_address) + offset, pfn_pte(page_to_pfn(from), PAGE_KERNEL), 0); | 90 | kfrom = COPYPAGE_V6_FROM + (offset << PAGE_SHIFT); |
94 | set_pte_ext(TOP_PTE(to_address) + offset, pfn_pte(page_to_pfn(to), PAGE_KERNEL), 0); | 91 | kto = COPYPAGE_V6_TO + (offset << PAGE_SHIFT); |
95 | 92 | ||
96 | kfrom = from_address + (offset << PAGE_SHIFT); | 93 | set_pte_ext(TOP_PTE(kfrom), pfn_pte(page_to_pfn(from), PAGE_KERNEL), 0); |
97 | kto = to_address + (offset << PAGE_SHIFT); | 94 | set_pte_ext(TOP_PTE(kto), pfn_pte(page_to_pfn(to), PAGE_KERNEL), 0); |
98 | 95 | ||
99 | flush_tlb_kernel_page(kfrom); | 96 | flush_tlb_kernel_page(kfrom); |
100 | flush_tlb_kernel_page(kto); | 97 | flush_tlb_kernel_page(kto); |
@@ -111,8 +108,7 @@ static void v6_copy_user_highpage_aliasing(struct page *to, | |||
111 | */ | 108 | */ |
112 | static void v6_clear_user_highpage_aliasing(struct page *page, unsigned long vaddr) | 109 | static void v6_clear_user_highpage_aliasing(struct page *page, unsigned long vaddr) |
113 | { | 110 | { |
114 | unsigned int offset = CACHE_COLOUR(vaddr); | 111 | unsigned long to = COPYPAGE_V6_TO + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); |
115 | unsigned long to = to_address + (offset << PAGE_SHIFT); | ||
116 | 112 | ||
117 | /* FIXME: not highmem safe */ | 113 | /* FIXME: not highmem safe */ |
118 | discard_old_kernel_data(page_address(page)); | 114 | discard_old_kernel_data(page_address(page)); |
@@ -123,7 +119,7 @@ static void v6_clear_user_highpage_aliasing(struct page *page, unsigned long vad | |||
123 | */ | 119 | */ |
124 | raw_spin_lock(&v6_lock); | 120 | raw_spin_lock(&v6_lock); |
125 | 121 | ||
126 | set_pte_ext(TOP_PTE(to_address) + offset, pfn_pte(page_to_pfn(page), PAGE_KERNEL), 0); | 122 | set_pte_ext(TOP_PTE(to), pfn_pte(page_to_pfn(page), PAGE_KERNEL), 0); |
127 | flush_tlb_kernel_page(to); | 123 | flush_tlb_kernel_page(to); |
128 | clear_page((void *)to); | 124 | clear_page((void *)to); |
129 | 125 | ||