.. | .. |
---|
8 | 8 | */ |
---|
9 | 9 | |
---|
10 | 10 | #include <linux/module.h> |
---|
11 | | -#include <asm/pgalloc.h> |
---|
| 11 | +#include <asm/cacheflush.h> |
---|
12 | 12 | #include <asm/traps.h> |
---|
13 | 13 | |
---|
14 | 14 | |
---|
.. | .. |
---|
73 | 73 | |
---|
74 | 74 | /* Push n pages at kernel virtual address and clear the icache */ |
---|
75 | 75 | /* RZ: use cpush %bc instead of cpush %dc, cinv %ic */ |
---|
76 | | -void flush_icache_range(unsigned long address, unsigned long endaddr) |
---|
| 76 | +void flush_icache_user_range(unsigned long address, unsigned long endaddr) |
---|
77 | 77 | { |
---|
78 | 78 | if (CPU_IS_COLDFIRE) { |
---|
79 | 79 | unsigned long start, end; |
---|
.. | .. |
---|
104 | 104 | : "di" (FLUSH_I)); |
---|
105 | 105 | } |
---|
106 | 106 | } |
---|
| 107 | + |
---|
| 108 | +void flush_icache_range(unsigned long address, unsigned long endaddr) |
---|
| 109 | +{ |
---|
| 110 | + mm_segment_t old_fs = get_fs(); |
---|
| 111 | + |
---|
| 112 | + set_fs(KERNEL_DS); |
---|
| 113 | + flush_icache_user_range(address, endaddr); |
---|
| 114 | + set_fs(old_fs); |
---|
| 115 | +} |
---|
107 | 116 | EXPORT_SYMBOL(flush_icache_range); |
---|
108 | 117 | |
---|
109 | | -void flush_icache_user_range(struct vm_area_struct *vma, struct page *page, |
---|
| 118 | +void flush_icache_user_page(struct vm_area_struct *vma, struct page *page, |
---|
110 | 119 | unsigned long addr, int len) |
---|
111 | 120 | { |
---|
112 | 121 | if (CPU_IS_COLDFIRE) { |
---|