diff options
| author | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-28 08:29:59 -0400 |
|---|---|---|
| committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-28 08:29:59 -0400 |
| commit | 185a257f2f73bcd89050ad02da5bedbc28fc43fa (patch) | |
| tree | 5e32586114534ed3f2165614cba3d578f5d87307 /include/asm-mips/cacheflush.h | |
| parent | 3f1a9aaeffd8d1cbc5ab9776c45cbd66af1c9699 (diff) | |
| parent | a77c64c1a641950626181b4857abb701d8f38ccc (diff) | |
Merge branch 'master' into gfs2
Diffstat (limited to 'include/asm-mips/cacheflush.h')
| -rw-r--r-- | include/asm-mips/cacheflush.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h index 47bc8f6c20d2..36416fdfcf68 100644 --- a/include/asm-mips/cacheflush.h +++ b/include/asm-mips/cacheflush.h | |||
| @@ -21,7 +21,6 @@ | |||
| 21 | * - flush_cache_range(vma, start, end) flushes a range of pages | 21 | * - flush_cache_range(vma, start, end) flushes a range of pages |
| 22 | * - flush_icache_range(start, end) flush a range of instructions | 22 | * - flush_icache_range(start, end) flush a range of instructions |
| 23 | * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache | 23 | * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache |
| 24 | * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache | ||
| 25 | * | 24 | * |
| 26 | * MIPS specific flush operations: | 25 | * MIPS specific flush operations: |
| 27 | * | 26 | * |
| @@ -39,7 +38,7 @@ extern void __flush_dcache_page(struct page *page); | |||
| 39 | 38 | ||
| 40 | static inline void flush_dcache_page(struct page *page) | 39 | static inline void flush_dcache_page(struct page *page) |
| 41 | { | 40 | { |
| 42 | if (cpu_has_dc_aliases) | 41 | if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) |
| 43 | __flush_dcache_page(page); | 42 | __flush_dcache_page(page); |
| 44 | 43 | ||
| 45 | } | 44 | } |
| @@ -47,8 +46,13 @@ static inline void flush_dcache_page(struct page *page) | |||
| 47 | #define flush_dcache_mmap_lock(mapping) do { } while (0) | 46 | #define flush_dcache_mmap_lock(mapping) do { } while (0) |
| 48 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | 47 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) |
| 49 | 48 | ||
| 50 | extern void (*flush_icache_page)(struct vm_area_struct *vma, | 49 | extern void (*__flush_icache_page)(struct vm_area_struct *vma, |
| 51 | struct page *page); | 50 | struct page *page); |
| 51 | static inline void flush_icache_page(struct vm_area_struct *vma, | ||
| 52 | struct page *page) | ||
| 53 | { | ||
| 54 | } | ||
| 55 | |||
| 52 | extern void (*flush_icache_range)(unsigned long start, unsigned long end); | 56 | extern void (*flush_icache_range)(unsigned long start, unsigned long end); |
| 53 | #define flush_cache_vmap(start, end) flush_cache_all() | 57 | #define flush_cache_vmap(start, end) flush_cache_all() |
| 54 | #define flush_cache_vunmap(start, end) flush_cache_all() | 58 | #define flush_cache_vunmap(start, end) flush_cache_all() |
| @@ -60,7 +64,7 @@ static inline void copy_to_user_page(struct vm_area_struct *vma, | |||
| 60 | if (cpu_has_dc_aliases) | 64 | if (cpu_has_dc_aliases) |
| 61 | flush_cache_page(vma, vaddr, page_to_pfn(page)); | 65 | flush_cache_page(vma, vaddr, page_to_pfn(page)); |
| 62 | memcpy(dst, src, len); | 66 | memcpy(dst, src, len); |
| 63 | flush_icache_page(vma, page); | 67 | __flush_icache_page(vma, page); |
| 64 | } | 68 | } |
| 65 | 69 | ||
| 66 | static inline void copy_from_user_page(struct vm_area_struct *vma, | 70 | static inline void copy_from_user_page(struct vm_area_struct *vma, |
