diff options
Diffstat (limited to 'arch/mips/include/asm/system.h')
-rw-r--r-- | arch/mips/include/asm/system.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h index cd30f83235bb..a2e9239b45aa 100644 --- a/arch/mips/include/asm/system.h +++ b/arch/mips/include/asm/system.h | |||
@@ -63,11 +63,23 @@ do { \ | |||
63 | #define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0) | 63 | #define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0) |
64 | #endif | 64 | #endif |
65 | 65 | ||
66 | #ifdef CONFIG_CPU_HAS_LLSC | ||
67 | #define __clear_software_ll_bit() do { } while (0) | ||
68 | #else | ||
69 | extern unsigned long ll_bit; | ||
70 | |||
71 | #define __clear_software_ll_bit() \ | ||
72 | do { \ | ||
73 | ll_bit = 0; \ | ||
74 | } while (0) | ||
75 | #endif | ||
76 | |||
66 | #define switch_to(prev, next, last) \ | 77 | #define switch_to(prev, next, last) \ |
67 | do { \ | 78 | do { \ |
68 | __mips_mt_fpaff_switch_to(prev); \ | 79 | __mips_mt_fpaff_switch_to(prev); \ |
69 | if (cpu_has_dsp) \ | 80 | if (cpu_has_dsp) \ |
70 | __save_dsp(prev); \ | 81 | __save_dsp(prev); \ |
82 | __clear_software_ll_bit(); \ | ||
71 | (last) = resume(prev, next, task_thread_info(next)); \ | 83 | (last) = resume(prev, next, task_thread_info(next)); \ |
72 | } while (0) | 84 | } while (0) |
73 | 85 | ||