Commit d12a2970385cfe0c1b0439f53c3ed1055d4dee3e
Committed by
Martin Schwidefsky
1 parent
f45655f6a6
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
s390/uaccess: remove pointless access_ok() checks
access_ok() always returns 'true' on s390. Therefore all calls are quite pointless and can be removed. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing 4 changed files with 5 additions and 46 deletions Side-by-side Diff
arch/s390/include/asm/futex.h
... | ... | @@ -16,9 +16,6 @@ |
16 | 16 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
17 | 17 | oparg = 1 << oparg; |
18 | 18 | |
19 | - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(u32))) | |
20 | - return -EFAULT; | |
21 | - | |
22 | 19 | pagefault_disable(); |
23 | 20 | ret = uaccess.futex_atomic_op(op, uaddr, oparg, &oldval); |
24 | 21 | pagefault_enable(); |
... | ... | @@ -40,9 +37,6 @@ |
40 | 37 | static inline int futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, |
41 | 38 | u32 oldval, u32 newval) |
42 | 39 | { |
43 | - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(u32))) | |
44 | - return -EFAULT; | |
45 | - | |
46 | 40 | return uaccess.futex_atomic_cmpxchg(uval, uaddr, oldval, newval); |
47 | 41 | } |
48 | 42 |
arch/s390/include/asm/uaccess.h
... | ... | @@ -252,9 +252,7 @@ |
252 | 252 | copy_to_user(void __user *to, const void *from, unsigned long n) |
253 | 253 | { |
254 | 254 | might_fault(); |
255 | - if (access_ok(VERIFY_WRITE, to, n)) | |
256 | - n = __copy_to_user(to, from, n); | |
257 | - return n; | |
255 | + return __copy_to_user(to, from, n); | |
258 | 256 | } |
259 | 257 | |
260 | 258 | /** |
... | ... | @@ -315,11 +313,7 @@ |
315 | 313 | copy_from_user_overflow(); |
316 | 314 | return n; |
317 | 315 | } |
318 | - if (access_ok(VERIFY_READ, from, n)) | |
319 | - n = __copy_from_user(to, from, n); | |
320 | - else | |
321 | - memset(to, 0, n); | |
322 | - return n; | |
316 | + return __copy_from_user(to, from, n); | |
323 | 317 | } |
324 | 318 | |
325 | 319 | static inline unsigned long __must_check |
... | ... | @@ -332,9 +326,7 @@ |
332 | 326 | copy_in_user(void __user *to, const void __user *from, unsigned long n) |
333 | 327 | { |
334 | 328 | might_fault(); |
335 | - if (__access_ok(from,n) && __access_ok(to,n)) | |
336 | - n = __copy_in_user(to, from, n); | |
337 | - return n; | |
329 | + return __copy_in_user(to, from, n); | |
338 | 330 | } |
339 | 331 | |
340 | 332 | /* |
341 | 333 | |
... | ... | @@ -343,11 +335,8 @@ |
343 | 335 | static inline long __must_check |
344 | 336 | strncpy_from_user(char *dst, const char __user *src, long count) |
345 | 337 | { |
346 | - long res = -EFAULT; | |
347 | 338 | might_fault(); |
348 | - if (access_ok(VERIFY_READ, src, 1)) | |
349 | - res = uaccess.strncpy_from_user(count, src, dst); | |
350 | - return res; | |
339 | + return uaccess.strncpy_from_user(count, src, dst); | |
351 | 340 | } |
352 | 341 | |
353 | 342 | static inline unsigned long |
... | ... | @@ -387,9 +376,7 @@ |
387 | 376 | clear_user(void __user *to, unsigned long n) |
388 | 377 | { |
389 | 378 | might_fault(); |
390 | - if (access_ok(VERIFY_WRITE, to, n)) | |
391 | - n = uaccess.clear_user(n, to); | |
392 | - return n; | |
379 | + return uaccess.clear_user(n, to); | |
393 | 380 | } |
394 | 381 | |
395 | 382 | extern int copy_to_user_real(void __user *dest, void *src, size_t count); |
arch/s390/kernel/compat_signal.c
... | ... | @@ -53,9 +53,6 @@ |
53 | 53 | { |
54 | 54 | int err; |
55 | 55 | |
56 | - if (!access_ok (VERIFY_WRITE, to, sizeof(compat_siginfo_t))) | |
57 | - return -EFAULT; | |
58 | - | |
59 | 56 | /* If you change siginfo_t structure, please be sure |
60 | 57 | this code is fixed accordingly. |
61 | 58 | It should never copy any pad contained in the structure |
... | ... | @@ -110,9 +107,6 @@ |
110 | 107 | int err; |
111 | 108 | u32 tmp; |
112 | 109 | |
113 | - if (!access_ok (VERIFY_READ, from, sizeof(compat_siginfo_t))) | |
114 | - return -EFAULT; | |
115 | - | |
116 | 110 | err = __get_user(to->si_signo, &from->si_signo); |
117 | 111 | err |= __get_user(to->si_errno, &from->si_errno); |
118 | 112 | err |= __get_user(to->si_code, &from->si_code); |
... | ... | @@ -244,8 +238,6 @@ |
244 | 238 | sigframe32 __user *frame = (sigframe32 __user *)regs->gprs[15]; |
245 | 239 | sigset_t set; |
246 | 240 | |
247 | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | |
248 | - goto badframe; | |
249 | 241 | if (__copy_from_user(&set.sig, &frame->sc.oldmask, _SIGMASK_COPY_SIZE32)) |
250 | 242 | goto badframe; |
251 | 243 | set_current_blocked(&set); |
... | ... | @@ -265,8 +257,6 @@ |
265 | 257 | rt_sigframe32 __user *frame = (rt_sigframe32 __user *)regs->gprs[15]; |
266 | 258 | sigset_t set; |
267 | 259 | |
268 | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | |
269 | - goto badframe; | |
270 | 260 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) |
271 | 261 | goto badframe; |
272 | 262 | set_current_blocked(&set); |
... | ... | @@ -325,8 +315,6 @@ |
325 | 315 | sigset_t *set, struct pt_regs * regs) |
326 | 316 | { |
327 | 317 | sigframe32 __user *frame = get_sigframe(ka, regs, sizeof(sigframe32)); |
328 | - if (!access_ok(VERIFY_WRITE, frame, sizeof(sigframe32))) | |
329 | - goto give_sigsegv; | |
330 | 318 | |
331 | 319 | if (frame == (void __user *) -1UL) |
332 | 320 | goto give_sigsegv; |
... | ... | @@ -391,8 +379,6 @@ |
391 | 379 | { |
392 | 380 | int err = 0; |
393 | 381 | rt_sigframe32 __user *frame = get_sigframe(ka, regs, sizeof(rt_sigframe32)); |
394 | - if (!access_ok(VERIFY_WRITE, frame, sizeof(rt_sigframe32))) | |
395 | - goto give_sigsegv; | |
396 | 382 | |
397 | 383 | if (frame == (void __user *) -1UL) |
398 | 384 | goto give_sigsegv; |
arch/s390/kernel/signal.c
... | ... | @@ -116,8 +116,6 @@ |
116 | 116 | sigframe __user *frame = (sigframe __user *)regs->gprs[15]; |
117 | 117 | sigset_t set; |
118 | 118 | |
119 | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | |
120 | - goto badframe; | |
121 | 119 | if (__copy_from_user(&set.sig, &frame->sc.oldmask, _SIGMASK_COPY_SIZE)) |
122 | 120 | goto badframe; |
123 | 121 | set_current_blocked(&set); |
... | ... | @@ -135,8 +133,6 @@ |
135 | 133 | rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15]; |
136 | 134 | sigset_t set; |
137 | 135 | |
138 | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | |
139 | - goto badframe; | |
140 | 136 | if (__copy_from_user(&set.sig, &frame->uc.uc_sigmask, sizeof(set))) |
141 | 137 | goto badframe; |
142 | 138 | set_current_blocked(&set); |
... | ... | @@ -195,8 +191,6 @@ |
195 | 191 | sigframe __user *frame; |
196 | 192 | |
197 | 193 | frame = get_sigframe(ka, regs, sizeof(sigframe)); |
198 | - if (!access_ok(VERIFY_WRITE, frame, sizeof(sigframe))) | |
199 | - goto give_sigsegv; | |
200 | 194 | |
201 | 195 | if (frame == (void __user *) -1UL) |
202 | 196 | goto give_sigsegv; |
... | ... | @@ -264,8 +258,6 @@ |
264 | 258 | rt_sigframe __user *frame; |
265 | 259 | |
266 | 260 | frame = get_sigframe(ka, regs, sizeof(rt_sigframe)); |
267 | - if (!access_ok(VERIFY_WRITE, frame, sizeof(rt_sigframe))) | |
268 | - goto give_sigsegv; | |
269 | 261 | |
270 | 262 | if (frame == (void __user *) -1UL) |
271 | 263 | goto give_sigsegv; |