diff options
Diffstat (limited to 'arch/mips/include/asm/futex.h')
-rw-r--r-- | arch/mips/include/asm/futex.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/mips/include/asm/futex.h b/arch/mips/include/asm/futex.h index 6ea15815d3ee..194cda0396a3 100644 --- a/arch/mips/include/asm/futex.h +++ b/arch/mips/include/asm/futex.h | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/futex.h> | 13 | #include <linux/futex.h> |
14 | #include <linux/uaccess.h> | 14 | #include <linux/uaccess.h> |
15 | #include <asm/asm-eva.h> | ||
15 | #include <asm/barrier.h> | 16 | #include <asm/barrier.h> |
16 | #include <asm/errno.h> | 17 | #include <asm/errno.h> |
17 | #include <asm/war.h> | 18 | #include <asm/war.h> |
@@ -22,11 +23,11 @@ | |||
22 | __asm__ __volatile__( \ | 23 | __asm__ __volatile__( \ |
23 | " .set push \n" \ | 24 | " .set push \n" \ |
24 | " .set noat \n" \ | 25 | " .set noat \n" \ |
25 | " .set mips3 \n" \ | 26 | " .set arch=r4000 \n" \ |
26 | "1: ll %1, %4 # __futex_atomic_op \n" \ | 27 | "1: ll %1, %4 # __futex_atomic_op \n" \ |
27 | " .set mips0 \n" \ | 28 | " .set mips0 \n" \ |
28 | " " insn " \n" \ | 29 | " " insn " \n" \ |
29 | " .set mips3 \n" \ | 30 | " .set arch=r4000 \n" \ |
30 | "2: sc $1, %2 \n" \ | 31 | "2: sc $1, %2 \n" \ |
31 | " beqzl $1, 1b \n" \ | 32 | " beqzl $1, 1b \n" \ |
32 | __WEAK_LLSC_MB \ | 33 | __WEAK_LLSC_MB \ |
@@ -48,12 +49,12 @@ | |||
48 | __asm__ __volatile__( \ | 49 | __asm__ __volatile__( \ |
49 | " .set push \n" \ | 50 | " .set push \n" \ |
50 | " .set noat \n" \ | 51 | " .set noat \n" \ |
51 | " .set mips3 \n" \ | 52 | " .set arch=r4000 \n" \ |
52 | "1: ll %1, %4 # __futex_atomic_op \n" \ | 53 | "1: "user_ll("%1", "%4")" # __futex_atomic_op\n" \ |
53 | " .set mips0 \n" \ | 54 | " .set mips0 \n" \ |
54 | " " insn " \n" \ | 55 | " " insn " \n" \ |
55 | " .set mips3 \n" \ | 56 | " .set arch=r4000 \n" \ |
56 | "2: sc $1, %2 \n" \ | 57 | "2: "user_sc("$1", "%2")" \n" \ |
57 | " beqz $1, 1b \n" \ | 58 | " beqz $1, 1b \n" \ |
58 | __WEAK_LLSC_MB \ | 59 | __WEAK_LLSC_MB \ |
59 | "3: \n" \ | 60 | "3: \n" \ |
@@ -146,12 +147,12 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, | |||
146 | "# futex_atomic_cmpxchg_inatomic \n" | 147 | "# futex_atomic_cmpxchg_inatomic \n" |
147 | " .set push \n" | 148 | " .set push \n" |
148 | " .set noat \n" | 149 | " .set noat \n" |
149 | " .set mips3 \n" | 150 | " .set arch=r4000 \n" |
150 | "1: ll %1, %3 \n" | 151 | "1: ll %1, %3 \n" |
151 | " bne %1, %z4, 3f \n" | 152 | " bne %1, %z4, 3f \n" |
152 | " .set mips0 \n" | 153 | " .set mips0 \n" |
153 | " move $1, %z5 \n" | 154 | " move $1, %z5 \n" |
154 | " .set mips3 \n" | 155 | " .set arch=r4000 \n" |
155 | "2: sc $1, %2 \n" | 156 | "2: sc $1, %2 \n" |
156 | " beqzl $1, 1b \n" | 157 | " beqzl $1, 1b \n" |
157 | __WEAK_LLSC_MB | 158 | __WEAK_LLSC_MB |
@@ -173,13 +174,13 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, | |||
173 | "# futex_atomic_cmpxchg_inatomic \n" | 174 | "# futex_atomic_cmpxchg_inatomic \n" |
174 | " .set push \n" | 175 | " .set push \n" |
175 | " .set noat \n" | 176 | " .set noat \n" |
176 | " .set mips3 \n" | 177 | " .set arch=r4000 \n" |
177 | "1: ll %1, %3 \n" | 178 | "1: "user_ll("%1", "%3")" \n" |
178 | " bne %1, %z4, 3f \n" | 179 | " bne %1, %z4, 3f \n" |
179 | " .set mips0 \n" | 180 | " .set mips0 \n" |
180 | " move $1, %z5 \n" | 181 | " move $1, %z5 \n" |
181 | " .set mips3 \n" | 182 | " .set arch=r4000 \n" |
182 | "2: sc $1, %2 \n" | 183 | "2: "user_sc("$1", "%2")" \n" |
183 | " beqz $1, 1b \n" | 184 | " beqz $1, 1b \n" |
184 | __WEAK_LLSC_MB | 185 | __WEAK_LLSC_MB |
185 | "3: \n" | 186 | "3: \n" |