浏览代码

MIPS: Consolidate all CONFIG_CPU_HAS_LLSC use in a single C file.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle 15 年之前
父节点
当前提交
f4c6b6bc5a
共有 4 个文件被更改,包括 12 次插入9 次删除
  1. 12 0
      arch/mips/include/asm/system.h
  2. 0 3
      arch/mips/kernel/octeon_switch.S
  3. 0 3
      arch/mips/kernel/r2300_switch.S
  4. 0 3
      arch/mips/kernel/r4k_switch.S

+ 12 - 0
arch/mips/include/asm/system.h

@@ -63,11 +63,23 @@ do {									\
 #define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0)
 #define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0)
 #endif
 #endif
 
 
+#ifdef CONFIG_CPU_HAS_LLSC
+#define __clear_software_ll_bit() do { } while (0)
+#else
+extern unsigned long ll_bit;
+
+#define __clear_software_ll_bit()					\
+do {									\
+	ll_bit = 0;							\
+} while (0)
+#endif
+
 #define switch_to(prev, next, last)					\
 #define switch_to(prev, next, last)					\
 do {									\
 do {									\
 	__mips_mt_fpaff_switch_to(prev);				\
 	__mips_mt_fpaff_switch_to(prev);				\
 	if (cpu_has_dsp)						\
 	if (cpu_has_dsp)						\
 		__save_dsp(prev);					\
 		__save_dsp(prev);					\
+	__clear_software_ll_bit();					\
 	(last) = resume(prev, next, task_thread_info(next));		\
 	(last) = resume(prev, next, task_thread_info(next));		\
 } while (0)
 } while (0)
 
 

+ 0 - 3
arch/mips/kernel/octeon_switch.S

@@ -36,9 +36,6 @@
 	.align	7
 	.align	7
 	LEAF(resume)
 	LEAF(resume)
 	.set arch=octeon
 	.set arch=octeon
-#ifndef CONFIG_CPU_HAS_LLSC
-	sw	zero, ll_bit
-#endif
 	mfc0	t1, CP0_STATUS
 	mfc0	t1, CP0_STATUS
 	LONG_S	t1, THREAD_STATUS(a0)
 	LONG_S	t1, THREAD_STATUS(a0)
 	cpu_save_nonscratch a0
 	cpu_save_nonscratch a0

+ 0 - 3
arch/mips/kernel/r2300_switch.S

@@ -46,9 +46,6 @@
  *                     struct thread_info *next_ti) )
  *                     struct thread_info *next_ti) )
  */
  */
 LEAF(resume)
 LEAF(resume)
-#ifndef CONFIG_CPU_HAS_LLSC
-	sw      zero, ll_bit
-#endif
 	mfc0	t1, CP0_STATUS
 	mfc0	t1, CP0_STATUS
 	sw	t1, THREAD_STATUS(a0)
 	sw	t1, THREAD_STATUS(a0)
 	cpu_save_nonscratch a0
 	cpu_save_nonscratch a0

+ 0 - 3
arch/mips/kernel/r4k_switch.S

@@ -45,9 +45,6 @@
  */
  */
 	.align	5
 	.align	5
 	LEAF(resume)
 	LEAF(resume)
-#ifndef CONFIG_CPU_HAS_LLSC
-	sw	zero, ll_bit
-#endif
 	mfc0	t1, CP0_STATUS
 	mfc0	t1, CP0_STATUS
 	LONG_S	t1, THREAD_STATUS(a0)
 	LONG_S	t1, THREAD_STATUS(a0)
 	cpu_save_nonscratch a0
 	cpu_save_nonscratch a0