diff options
Diffstat (limited to 'arch/parisc/include/asm/cacheflush.h')
-rw-r--r-- | arch/parisc/include/asm/cacheflush.h | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/arch/parisc/include/asm/cacheflush.h b/arch/parisc/include/asm/cacheflush.h index 19c9c3c5f267..c7e15cc5c668 100644 --- a/arch/parisc/include/asm/cacheflush.h +++ b/arch/parisc/include/asm/cacheflush.h | |||
@@ -43,28 +43,9 @@ static inline void flush_kernel_dcache_page(struct page *page) | |||
43 | 43 | ||
44 | #define flush_kernel_dcache_range(start,size) \ | 44 | #define flush_kernel_dcache_range(start,size) \ |
45 | flush_kernel_dcache_range_asm((start), (start)+(size)); | 45 | flush_kernel_dcache_range_asm((start), (start)+(size)); |
46 | /* vmap range flushes and invalidates. Architecturally, we don't need | ||
47 | * the invalidate, because the CPU should refuse to speculate once an | ||
48 | * area has been flushed, so invalidate is left empty */ | ||
49 | static inline void flush_kernel_vmap_range(void *vaddr, int size) | ||
50 | { | ||
51 | unsigned long start = (unsigned long)vaddr; | ||
52 | |||
53 | flush_kernel_dcache_range_asm(start, start + size); | ||
54 | } | ||
55 | static inline void invalidate_kernel_vmap_range(void *vaddr, int size) | ||
56 | { | ||
57 | unsigned long start = (unsigned long)vaddr; | ||
58 | void *cursor = vaddr; | ||
59 | 46 | ||
60 | for ( ; cursor < vaddr + size; cursor += PAGE_SIZE) { | 47 | void flush_kernel_vmap_range(void *vaddr, int size); |
61 | struct page *page = vmalloc_to_page(cursor); | 48 | void invalidate_kernel_vmap_range(void *vaddr, int size); |
62 | |||
63 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) | ||
64 | flush_kernel_dcache_page(page); | ||
65 | } | ||
66 | flush_kernel_dcache_range_asm(start, start + size); | ||
67 | } | ||
68 | 49 | ||
69 | #define flush_cache_vmap(start, end) flush_cache_all() | 50 | #define flush_cache_vmap(start, end) flush_cache_all() |
70 | #define flush_cache_vunmap(start, end) flush_cache_all() | 51 | #define flush_cache_vunmap(start, end) flush_cache_all() |