summaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/mm/cache.c')
-rw-r--r--arch/sh/mm/cache.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index 33bdf2114..5c28ea039 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -175,13 +175,13 @@ void cache_wback_area(unsigned long start, unsigned long end)
*
* For SH-4, flush (write back) Operand Cache, as Instruction Cache
* doesn't have "updated" data.
+ *
+ * Assumes that called in interrupt disabled.
*/
static void cache_wback_all(void)
{
- unsigned long flags;
unsigned long addr, data, i, j;
- save_and_cli(flags);
jump_to_P2();
for (i=0; i<CACHE_OC_NUM_ENTRIES; i++) {
@@ -197,7 +197,6 @@ static void cache_wback_all(void)
}
back_to_P1();
- restore_flags(flags);
}
static void
@@ -314,11 +313,11 @@ void flush_cache_all(void)
{
unsigned long flags;
+ save_and_cli(flags);
/* Write back Operand Cache */
- cache_wback_all ();
+ cache_wback_all();
/* Then, invalidate Instruction Cache and Operand Cache */
- save_and_cli(flags);
jump_to_P2();
ctrl_outl(CCR_CACHE_INIT, CCR);
back_to_P1();