|
@@ -29,6 +29,7 @@
|
|
|
#include <linux/sched/task_stack.h>
|
|
|
|
|
|
#include <asm/asm.h>
|
|
|
+#include <asm/asm-eva.h>
|
|
|
#include <asm/branch.h>
|
|
|
#include <asm/cachectl.h>
|
|
|
#include <asm/cacheflush.h>
|
|
@@ -131,9 +132,11 @@ static inline int mips_atomic_set(unsigned long addr, unsigned long new)
|
|
|
__asm__ __volatile__ (
|
|
|
" .set "MIPS_ISA_ARCH_LEVEL" \n"
|
|
|
" li %[err], 0 \n"
|
|
|
- "1: ll %[old], (%[addr]) \n"
|
|
|
+ "1: \n"
|
|
|
+ user_ll("%[old]", "(%[addr])")
|
|
|
" move %[tmp], %[new] \n"
|
|
|
- "2: sc %[tmp], (%[addr]) \n"
|
|
|
+ "2: \n"
|
|
|
+ user_sc("%[tmp]", "(%[addr])")
|
|
|
" beqz %[tmp], 4f \n"
|
|
|
"3: \n"
|
|
|
" .insn \n"
|