patch-2.3.99-pre6 linux/arch/sh/mm/cache.c

Next file: linux/arch/sh/mm/fault.c
Previous file: linux/arch/sh/kernel/traps.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre5/linux/arch/sh/mm/cache.c linux/arch/sh/mm/cache.c
@@ -175,13 +175,13 @@
  *
  * 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 @@
 	}
 
 	back_to_P1();
-	restore_flags(flags);
 }
 
 static void
@@ -314,11 +313,11 @@
 {
 	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();

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)