| .. | .. |
|---|
| 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) { |
|---|