diff options
Diffstat (limited to 'arch/mips/kernel/syscall.c')
| -rw-r--r-- | arch/mips/kernel/syscall.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 3fe1fcfa2e73..fe0d79805603 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
| @@ -306,6 +306,7 @@ static inline int mips_atomic_set(struct pt_regs *regs, | |||
| 306 | 306 | ||
| 307 | if (cpu_has_llsc && R10000_LLSC_WAR) { | 307 | if (cpu_has_llsc && R10000_LLSC_WAR) { |
| 308 | __asm__ __volatile__ ( | 308 | __asm__ __volatile__ ( |
| 309 | " .set mips3 \n" | ||
| 309 | " li %[err], 0 \n" | 310 | " li %[err], 0 \n" |
| 310 | "1: ll %[old], (%[addr]) \n" | 311 | "1: ll %[old], (%[addr]) \n" |
| 311 | " move %[tmp], %[new] \n" | 312 | " move %[tmp], %[new] \n" |
| @@ -320,6 +321,7 @@ static inline int mips_atomic_set(struct pt_regs *regs, | |||
| 320 | " "STR(PTR)" 1b, 4b \n" | 321 | " "STR(PTR)" 1b, 4b \n" |
| 321 | " "STR(PTR)" 2b, 4b \n" | 322 | " "STR(PTR)" 2b, 4b \n" |
| 322 | " .previous \n" | 323 | " .previous \n" |
| 324 | " .set mips0 \n" | ||
| 323 | : [old] "=&r" (old), | 325 | : [old] "=&r" (old), |
| 324 | [err] "=&r" (err), | 326 | [err] "=&r" (err), |
| 325 | [tmp] "=&r" (tmp) | 327 | [tmp] "=&r" (tmp) |
| @@ -329,6 +331,7 @@ static inline int mips_atomic_set(struct pt_regs *regs, | |||
| 329 | : "memory"); | 331 | : "memory"); |
| 330 | } else if (cpu_has_llsc) { | 332 | } else if (cpu_has_llsc) { |
| 331 | __asm__ __volatile__ ( | 333 | __asm__ __volatile__ ( |
| 334 | " .set mips3 \n" | ||
| 332 | " li %[err], 0 \n" | 335 | " li %[err], 0 \n" |
| 333 | "1: ll %[old], (%[addr]) \n" | 336 | "1: ll %[old], (%[addr]) \n" |
| 334 | " move %[tmp], %[new] \n" | 337 | " move %[tmp], %[new] \n" |
| @@ -347,6 +350,7 @@ static inline int mips_atomic_set(struct pt_regs *regs, | |||
| 347 | " "STR(PTR)" 1b, 5b \n" | 350 | " "STR(PTR)" 1b, 5b \n" |
| 348 | " "STR(PTR)" 2b, 5b \n" | 351 | " "STR(PTR)" 2b, 5b \n" |
| 349 | " .previous \n" | 352 | " .previous \n" |
| 353 | " .set mips0 \n" | ||
| 350 | : [old] "=&r" (old), | 354 | : [old] "=&r" (old), |
| 351 | [err] "=&r" (err), | 355 | [err] "=&r" (err), |
| 352 | [tmp] "=&r" (tmp) | 356 | [tmp] "=&r" (tmp) |
