[ARM] 2939/1: Fix compilation error in arch/arm/mm/flush.c

Patch from Catalin Marinas

When CONFIG_CPU_CACHE_VIPT is defined, the flush_pfn_alias() function is
implicitely declared and it later conflicts with its actual definition.
This patch moves the function definition to the beginning of the file.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Catalin Marinas and committed by Russell King 481467d6 dce79aff

+18 -18
+18 -18
arch/arm/mm/flush.c
··· 17 18 #ifdef CONFIG_CPU_CACHE_VIPT 19 20 void flush_cache_mm(struct mm_struct *mm) 21 { 22 if (cache_is_vivt()) { ··· 84 85 if (cache_is_vipt_aliasing()) 86 flush_pfn_alias(pfn, user_addr); 87 - } 88 - 89 - #define ALIAS_FLUSH_START 0xffff4000 90 - 91 - #define TOP_PTE(x) pte_offset_kernel(top_pmd, x) 92 - 93 - static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) 94 - { 95 - unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); 96 - 97 - set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); 98 - flush_tlb_kernel_page(to); 99 - 100 - asm( "mcrr p15, 0, %1, %0, c14\n" 101 - " mcrr p15, 0, %1, %0, c5\n" 102 - : 103 - : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES) 104 - : "cc"); 105 } 106 #else 107 #define flush_pfn_alias(pfn,vaddr) do { } while (0)
··· 17 18 #ifdef CONFIG_CPU_CACHE_VIPT 19 20 + #define ALIAS_FLUSH_START 0xffff4000 21 + 22 + #define TOP_PTE(x) pte_offset_kernel(top_pmd, x) 23 + 24 + static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) 25 + { 26 + unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); 27 + 28 + set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); 29 + flush_tlb_kernel_page(to); 30 + 31 + asm( "mcrr p15, 0, %1, %0, c14\n" 32 + " mcrr p15, 0, %1, %0, c5\n" 33 + : 34 + : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES) 35 + : "cc"); 36 + } 37 + 38 void flush_cache_mm(struct mm_struct *mm) 39 { 40 if (cache_is_vivt()) { ··· 66 67 if (cache_is_vipt_aliasing()) 68 flush_pfn_alias(pfn, user_addr); 69 } 70 #else 71 #define flush_pfn_alias(pfn,vaddr) do { } while (0)