Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ARM] Make v6 copypage function static and cleanup pgprots

We know what pgprot we're going to use, so don't #define it. Also,
since we select the nonaliasing/aliasing copypage implementation at
run time, there's no point having it globally visible.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Russell King and committed by
Russell King
b4c2803c d362979a

+7 -9
+7 -9
arch/arm/mm/copypage-v6.c
··· 22 22 #endif 23 23 24 24 #define from_address (0xffff8000) 25 - #define from_pgprot PAGE_KERNEL 26 25 #define to_address (0xffffc000) 27 - #define to_pgprot PAGE_KERNEL 28 26 29 27 #define TOP_PTE(x) pte_offset_kernel(top_pmd, x) 30 28 ··· 32 34 * Copy the user page. No aliasing to deal with so we can just 33 35 * attack the kernel's existing mapping of these pages. 34 36 */ 35 - void v6_copy_user_page_nonaliasing(void *kto, const void *kfrom, unsigned long vaddr) 37 + static void v6_copy_user_page_nonaliasing(void *kto, const void *kfrom, unsigned long vaddr) 36 38 { 37 39 copy_page(kto, kfrom); 38 40 } ··· 41 43 * Clear the user page. No aliasing to deal with so we can just 42 44 * attack the kernel's existing mapping of this page. 43 45 */ 44 - void v6_clear_user_page_nonaliasing(void *kaddr, unsigned long vaddr) 46 + static void v6_clear_user_page_nonaliasing(void *kaddr, unsigned long vaddr) 45 47 { 46 48 clear_page(kaddr); 47 49 } ··· 49 51 /* 50 52 * Copy the page, taking account of the cache colour. 51 53 */ 52 - void v6_copy_user_page_aliasing(void *kto, const void *kfrom, unsigned long vaddr) 54 + static void v6_copy_user_page_aliasing(void *kto, const void *kfrom, unsigned long vaddr) 53 55 { 54 56 unsigned int offset = CACHE_COLOUR(vaddr); 55 57 unsigned long from, to; ··· 70 72 */ 71 73 spin_lock(&v6_lock); 72 74 73 - set_pte(TOP_PTE(from_address) + offset, pfn_pte(__pa(kfrom) >> PAGE_SHIFT, from_pgprot)); 74 - set_pte(TOP_PTE(to_address) + offset, pfn_pte(__pa(kto) >> PAGE_SHIFT, to_pgprot)); 75 + set_pte(TOP_PTE(from_address) + offset, pfn_pte(__pa(kfrom) >> PAGE_SHIFT, PAGE_KERNEL)); 76 + set_pte(TOP_PTE(to_address) + offset, pfn_pte(__pa(kto) >> PAGE_SHIFT, PAGE_KERNEL)); 75 77 76 78 from = from_address + (offset << PAGE_SHIFT); 77 79 to = to_address + (offset << PAGE_SHIFT); ··· 89 91 * so remap the kernel page into the same cache colour as the user 90 92 * page. 91 93 */ 92 - void v6_clear_user_page_aliasing(void *kaddr, unsigned long vaddr) 94 + static void v6_clear_user_page_aliasing(void *kaddr, unsigned long vaddr) 93 95 { 94 96 unsigned int offset = CACHE_COLOUR(vaddr); 95 97 unsigned long to = to_address + (offset << PAGE_SHIFT); ··· 110 112 */ 111 113 spin_lock(&v6_lock); 112 114 113 - set_pte(TOP_PTE(to_address) + offset, pfn_pte(__pa(kaddr) >> PAGE_SHIFT, to_pgprot)); 115 + set_pte(TOP_PTE(to_address) + offset, pfn_pte(__pa(kaddr) >> PAGE_SHIFT, PAGE_KERNEL)); 114 116 flush_tlb_kernel_page(to); 115 117 clear_page((void *)to); 116 118