.. | .. |
---|
47 | 47 | "3: lea 0(%2,%0,4),%0\n" \ |
---|
48 | 48 | " jmp 2b\n" \ |
---|
49 | 49 | ".previous\n" \ |
---|
50 | | - _ASM_EXTABLE(0b,3b) \ |
---|
51 | | - _ASM_EXTABLE(1b,2b) \ |
---|
| 50 | + _ASM_EXTABLE_UA(0b, 3b) \ |
---|
| 51 | + _ASM_EXTABLE_UA(1b, 2b) \ |
---|
52 | 52 | : "=&c"(size), "=&D" (__d0) \ |
---|
53 | 53 | : "r"(size & 3), "0"(size / 4), "1"(addr), "a"(0)); \ |
---|
54 | 54 | } while (0) |
---|
55 | 55 | |
---|
56 | 56 | /** |
---|
57 | | - * clear_user: - Zero a block of memory in user space. |
---|
| 57 | + * clear_user - Zero a block of memory in user space. |
---|
58 | 58 | * @to: Destination address, in user space. |
---|
59 | 59 | * @n: Number of bytes to zero. |
---|
60 | 60 | * |
---|
61 | 61 | * Zero a block of memory in user space. |
---|
62 | 62 | * |
---|
63 | | - * Returns number of bytes that could not be cleared. |
---|
| 63 | + * Return: number of bytes that could not be cleared. |
---|
64 | 64 | * On success, this will be zero. |
---|
65 | 65 | */ |
---|
66 | 66 | unsigned long |
---|
67 | 67 | clear_user(void __user *to, unsigned long n) |
---|
68 | 68 | { |
---|
69 | 69 | might_fault(); |
---|
70 | | - if (access_ok(VERIFY_WRITE, to, n)) |
---|
| 70 | + if (access_ok(to, n)) |
---|
71 | 71 | __do_clear_user(to, n); |
---|
72 | 72 | return n; |
---|
73 | 73 | } |
---|
74 | 74 | EXPORT_SYMBOL(clear_user); |
---|
75 | 75 | |
---|
76 | 76 | /** |
---|
77 | | - * __clear_user: - Zero a block of memory in user space, with less checking. |
---|
| 77 | + * __clear_user - Zero a block of memory in user space, with less checking. |
---|
78 | 78 | * @to: Destination address, in user space. |
---|
79 | 79 | * @n: Number of bytes to zero. |
---|
80 | 80 | * |
---|
81 | 81 | * Zero a block of memory in user space. Caller must check |
---|
82 | 82 | * the specified block with access_ok() before calling this function. |
---|
83 | 83 | * |
---|
84 | | - * Returns number of bytes that could not be cleared. |
---|
| 84 | + * Return: number of bytes that could not be cleared. |
---|
85 | 85 | * On success, this will be zero. |
---|
86 | 86 | */ |
---|
87 | 87 | unsigned long |
---|
.. | .. |
---|
153 | 153 | "101: lea 0(%%eax,%0,4),%0\n" |
---|
154 | 154 | " jmp 100b\n" |
---|
155 | 155 | ".previous\n" |
---|
156 | | - _ASM_EXTABLE(1b,100b) |
---|
157 | | - _ASM_EXTABLE(2b,100b) |
---|
158 | | - _ASM_EXTABLE(3b,100b) |
---|
159 | | - _ASM_EXTABLE(4b,100b) |
---|
160 | | - _ASM_EXTABLE(5b,100b) |
---|
161 | | - _ASM_EXTABLE(6b,100b) |
---|
162 | | - _ASM_EXTABLE(7b,100b) |
---|
163 | | - _ASM_EXTABLE(8b,100b) |
---|
164 | | - _ASM_EXTABLE(9b,100b) |
---|
165 | | - _ASM_EXTABLE(10b,100b) |
---|
166 | | - _ASM_EXTABLE(11b,100b) |
---|
167 | | - _ASM_EXTABLE(12b,100b) |
---|
168 | | - _ASM_EXTABLE(13b,100b) |
---|
169 | | - _ASM_EXTABLE(14b,100b) |
---|
170 | | - _ASM_EXTABLE(15b,100b) |
---|
171 | | - _ASM_EXTABLE(16b,100b) |
---|
172 | | - _ASM_EXTABLE(17b,100b) |
---|
173 | | - _ASM_EXTABLE(18b,100b) |
---|
174 | | - _ASM_EXTABLE(19b,100b) |
---|
175 | | - _ASM_EXTABLE(20b,100b) |
---|
176 | | - _ASM_EXTABLE(21b,100b) |
---|
177 | | - _ASM_EXTABLE(22b,100b) |
---|
178 | | - _ASM_EXTABLE(23b,100b) |
---|
179 | | - _ASM_EXTABLE(24b,100b) |
---|
180 | | - _ASM_EXTABLE(25b,100b) |
---|
181 | | - _ASM_EXTABLE(26b,100b) |
---|
182 | | - _ASM_EXTABLE(27b,100b) |
---|
183 | | - _ASM_EXTABLE(28b,100b) |
---|
184 | | - _ASM_EXTABLE(29b,100b) |
---|
185 | | - _ASM_EXTABLE(30b,100b) |
---|
186 | | - _ASM_EXTABLE(31b,100b) |
---|
187 | | - _ASM_EXTABLE(32b,100b) |
---|
188 | | - _ASM_EXTABLE(33b,100b) |
---|
189 | | - _ASM_EXTABLE(34b,100b) |
---|
190 | | - _ASM_EXTABLE(35b,100b) |
---|
191 | | - _ASM_EXTABLE(36b,100b) |
---|
192 | | - _ASM_EXTABLE(37b,100b) |
---|
193 | | - _ASM_EXTABLE(99b,101b) |
---|
| 156 | + _ASM_EXTABLE_UA(1b, 100b) |
---|
| 157 | + _ASM_EXTABLE_UA(2b, 100b) |
---|
| 158 | + _ASM_EXTABLE_UA(3b, 100b) |
---|
| 159 | + _ASM_EXTABLE_UA(4b, 100b) |
---|
| 160 | + _ASM_EXTABLE_UA(5b, 100b) |
---|
| 161 | + _ASM_EXTABLE_UA(6b, 100b) |
---|
| 162 | + _ASM_EXTABLE_UA(7b, 100b) |
---|
| 163 | + _ASM_EXTABLE_UA(8b, 100b) |
---|
| 164 | + _ASM_EXTABLE_UA(9b, 100b) |
---|
| 165 | + _ASM_EXTABLE_UA(10b, 100b) |
---|
| 166 | + _ASM_EXTABLE_UA(11b, 100b) |
---|
| 167 | + _ASM_EXTABLE_UA(12b, 100b) |
---|
| 168 | + _ASM_EXTABLE_UA(13b, 100b) |
---|
| 169 | + _ASM_EXTABLE_UA(14b, 100b) |
---|
| 170 | + _ASM_EXTABLE_UA(15b, 100b) |
---|
| 171 | + _ASM_EXTABLE_UA(16b, 100b) |
---|
| 172 | + _ASM_EXTABLE_UA(17b, 100b) |
---|
| 173 | + _ASM_EXTABLE_UA(18b, 100b) |
---|
| 174 | + _ASM_EXTABLE_UA(19b, 100b) |
---|
| 175 | + _ASM_EXTABLE_UA(20b, 100b) |
---|
| 176 | + _ASM_EXTABLE_UA(21b, 100b) |
---|
| 177 | + _ASM_EXTABLE_UA(22b, 100b) |
---|
| 178 | + _ASM_EXTABLE_UA(23b, 100b) |
---|
| 179 | + _ASM_EXTABLE_UA(24b, 100b) |
---|
| 180 | + _ASM_EXTABLE_UA(25b, 100b) |
---|
| 181 | + _ASM_EXTABLE_UA(26b, 100b) |
---|
| 182 | + _ASM_EXTABLE_UA(27b, 100b) |
---|
| 183 | + _ASM_EXTABLE_UA(28b, 100b) |
---|
| 184 | + _ASM_EXTABLE_UA(29b, 100b) |
---|
| 185 | + _ASM_EXTABLE_UA(30b, 100b) |
---|
| 186 | + _ASM_EXTABLE_UA(31b, 100b) |
---|
| 187 | + _ASM_EXTABLE_UA(32b, 100b) |
---|
| 188 | + _ASM_EXTABLE_UA(33b, 100b) |
---|
| 189 | + _ASM_EXTABLE_UA(34b, 100b) |
---|
| 190 | + _ASM_EXTABLE_UA(35b, 100b) |
---|
| 191 | + _ASM_EXTABLE_UA(36b, 100b) |
---|
| 192 | + _ASM_EXTABLE_UA(37b, 100b) |
---|
| 193 | + _ASM_EXTABLE_UA(99b, 101b) |
---|
194 | 194 | : "=&c"(size), "=&D" (d0), "=&S" (d1) |
---|
195 | 195 | : "1"(to), "2"(from), "0"(size) |
---|
196 | 196 | : "eax", "edx", "memory"); |
---|
.. | .. |
---|
259 | 259 | "9: lea 0(%%eax,%0,4),%0\n" |
---|
260 | 260 | "16: jmp 8b\n" |
---|
261 | 261 | ".previous\n" |
---|
262 | | - _ASM_EXTABLE(0b,16b) |
---|
263 | | - _ASM_EXTABLE(1b,16b) |
---|
264 | | - _ASM_EXTABLE(2b,16b) |
---|
265 | | - _ASM_EXTABLE(21b,16b) |
---|
266 | | - _ASM_EXTABLE(3b,16b) |
---|
267 | | - _ASM_EXTABLE(31b,16b) |
---|
268 | | - _ASM_EXTABLE(4b,16b) |
---|
269 | | - _ASM_EXTABLE(41b,16b) |
---|
270 | | - _ASM_EXTABLE(10b,16b) |
---|
271 | | - _ASM_EXTABLE(51b,16b) |
---|
272 | | - _ASM_EXTABLE(11b,16b) |
---|
273 | | - _ASM_EXTABLE(61b,16b) |
---|
274 | | - _ASM_EXTABLE(12b,16b) |
---|
275 | | - _ASM_EXTABLE(71b,16b) |
---|
276 | | - _ASM_EXTABLE(13b,16b) |
---|
277 | | - _ASM_EXTABLE(81b,16b) |
---|
278 | | - _ASM_EXTABLE(14b,16b) |
---|
279 | | - _ASM_EXTABLE(91b,16b) |
---|
280 | | - _ASM_EXTABLE(6b,9b) |
---|
281 | | - _ASM_EXTABLE(7b,16b) |
---|
| 262 | + _ASM_EXTABLE_UA(0b, 16b) |
---|
| 263 | + _ASM_EXTABLE_UA(1b, 16b) |
---|
| 264 | + _ASM_EXTABLE_UA(2b, 16b) |
---|
| 265 | + _ASM_EXTABLE_UA(21b, 16b) |
---|
| 266 | + _ASM_EXTABLE_UA(3b, 16b) |
---|
| 267 | + _ASM_EXTABLE_UA(31b, 16b) |
---|
| 268 | + _ASM_EXTABLE_UA(4b, 16b) |
---|
| 269 | + _ASM_EXTABLE_UA(41b, 16b) |
---|
| 270 | + _ASM_EXTABLE_UA(10b, 16b) |
---|
| 271 | + _ASM_EXTABLE_UA(51b, 16b) |
---|
| 272 | + _ASM_EXTABLE_UA(11b, 16b) |
---|
| 273 | + _ASM_EXTABLE_UA(61b, 16b) |
---|
| 274 | + _ASM_EXTABLE_UA(12b, 16b) |
---|
| 275 | + _ASM_EXTABLE_UA(71b, 16b) |
---|
| 276 | + _ASM_EXTABLE_UA(13b, 16b) |
---|
| 277 | + _ASM_EXTABLE_UA(81b, 16b) |
---|
| 278 | + _ASM_EXTABLE_UA(14b, 16b) |
---|
| 279 | + _ASM_EXTABLE_UA(91b, 16b) |
---|
| 280 | + _ASM_EXTABLE_UA(6b, 9b) |
---|
| 281 | + _ASM_EXTABLE_UA(7b, 16b) |
---|
282 | 282 | : "=&c"(size), "=&D" (d0), "=&S" (d1) |
---|
283 | 283 | : "1"(to), "2"(from), "0"(size) |
---|
284 | 284 | : "eax", "edx", "memory"); |
---|
.. | .. |
---|
321 | 321 | "3: lea 0(%3,%0,4),%0\n" \ |
---|
322 | 322 | " jmp 2b\n" \ |
---|
323 | 323 | ".previous\n" \ |
---|
324 | | - _ASM_EXTABLE(4b,5b) \ |
---|
325 | | - _ASM_EXTABLE(0b,3b) \ |
---|
326 | | - _ASM_EXTABLE(1b,2b) \ |
---|
| 324 | + _ASM_EXTABLE_UA(4b, 5b) \ |
---|
| 325 | + _ASM_EXTABLE_UA(0b, 3b) \ |
---|
| 326 | + _ASM_EXTABLE_UA(1b, 2b) \ |
---|
327 | 327 | : "=&c"(size), "=&D" (__d0), "=&S" (__d1), "=r"(__d2) \ |
---|
328 | 328 | : "3"(size), "0"(size), "1"(to), "2"(from) \ |
---|
329 | 329 | : "memory"); \ |
---|