diff options
Diffstat (limited to 'arch/m68k/kernel/signal.c')
-rw-r--r-- | arch/m68k/kernel/signal.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c index 2a16df3d9312..57fd286e4b0b 100644 --- a/arch/m68k/kernel/signal.c +++ b/arch/m68k/kernel/signal.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <asm/pgtable.h> | 50 | #include <asm/pgtable.h> |
51 | #include <asm/traps.h> | 51 | #include <asm/traps.h> |
52 | #include <asm/ucontext.h> | 52 | #include <asm/ucontext.h> |
53 | #include <asm/cacheflush.h> | ||
53 | 54 | ||
54 | #ifdef CONFIG_MMU | 55 | #ifdef CONFIG_MMU |
55 | 56 | ||
@@ -181,6 +182,13 @@ static inline void push_cache (unsigned long vaddr) | |||
181 | asm volatile ("movec %0,%%caar\n\t" | 182 | asm volatile ("movec %0,%%caar\n\t" |
182 | "movec %1,%%cacr" | 183 | "movec %1,%%cacr" |
183 | : : "r" (vaddr + 4), "r" (temp)); | 184 | : : "r" (vaddr + 4), "r" (temp)); |
185 | } else { | ||
186 | /* CPU_IS_COLDFIRE */ | ||
187 | #if defined(CONFIG_CACHE_COPYBACK) | ||
188 | flush_cf_dcache(0, DCACHE_MAX_ADDR); | ||
189 | #endif | ||
190 | /* Invalidate instruction cache for the pushed bytes */ | ||
191 | clear_cf_icache(vaddr, vaddr + 8); | ||
184 | } | 192 | } |
185 | } | 193 | } |
186 | 194 | ||