diff options
-rw-r--r-- | arch/x86/mm/pageattr_64.c | 6 | ||||
-rw-r--r-- | include/asm-x86/cacheflush.h | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/mm/pageattr_64.c b/arch/x86/mm/pageattr_64.c index c7b7dfe1d405..c40afbaaf93d 100644 --- a/arch/x86/mm/pageattr_64.c +++ b/arch/x86/mm/pageattr_64.c | |||
@@ -61,10 +61,10 @@ static struct page *split_large_page(unsigned long address, pgprot_t prot, | |||
61 | return base; | 61 | return base; |
62 | } | 62 | } |
63 | 63 | ||
64 | static void cache_flush_page(void *adr) | 64 | void clflush_cache_range(void *adr, int size) |
65 | { | 65 | { |
66 | int i; | 66 | int i; |
67 | for (i = 0; i < PAGE_SIZE; i += boot_cpu_data.x86_clflush_size) | 67 | for (i = 0; i < size; i += boot_cpu_data.x86_clflush_size) |
68 | clflush(adr+i); | 68 | clflush(adr+i); |
69 | } | 69 | } |
70 | 70 | ||
@@ -80,7 +80,7 @@ static void flush_kernel_map(void *arg) | |||
80 | asm volatile("wbinvd" ::: "memory"); | 80 | asm volatile("wbinvd" ::: "memory"); |
81 | else list_for_each_entry(pg, l, lru) { | 81 | else list_for_each_entry(pg, l, lru) { |
82 | void *adr = page_address(pg); | 82 | void *adr = page_address(pg); |
83 | cache_flush_page(adr); | 83 | clflush_cache_range(adr, PAGE_SIZE); |
84 | } | 84 | } |
85 | __flush_tlb_all(); | 85 | __flush_tlb_all(); |
86 | } | 86 | } |
diff --git a/include/asm-x86/cacheflush.h b/include/asm-x86/cacheflush.h index b3d43de44c59..9411a2d3f19c 100644 --- a/include/asm-x86/cacheflush.h +++ b/include/asm-x86/cacheflush.h | |||
@@ -27,6 +27,7 @@ | |||
27 | void global_flush_tlb(void); | 27 | void global_flush_tlb(void); |
28 | int change_page_attr(struct page *page, int numpages, pgprot_t prot); | 28 | int change_page_attr(struct page *page, int numpages, pgprot_t prot); |
29 | int change_page_attr_addr(unsigned long addr, int numpages, pgprot_t prot); | 29 | int change_page_attr_addr(unsigned long addr, int numpages, pgprot_t prot); |
30 | void clflush_cache_range(void *addr, int size); | ||
30 | 31 | ||
31 | #ifdef CONFIG_DEBUG_PAGEALLOC | 32 | #ifdef CONFIG_DEBUG_PAGEALLOC |
32 | /* internal debugging function */ | 33 | /* internal debugging function */ |