Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/net: Switch csum_and_copy_{to/from}_user to user_access block

Use user_access_begin() instead of the
might_sleep/access_ok/allow_access sequence.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/2dee286d2d6dc9a27d99e31ac564bad4fae2cb49.1615398498.git.christophe.leroy@csgroup.eu

authored by

Christophe Leroy and committed by
Michael Ellerman
164dc6ce e63ceebd

+4 -11
+4 -11
arch/powerpc/lib/checksum_wrappers.c
··· 16 16 { 17 17 __wsum csum; 18 18 19 - might_sleep(); 20 - 21 - if (unlikely(!access_ok(src, len))) 19 + if (unlikely(!user_read_access_begin(src, len))) 22 20 return 0; 23 - 24 - allow_read_from_user(src, len); 25 21 26 22 csum = csum_partial_copy_generic((void __force *)src, dst, len); 27 23 28 - prevent_read_from_user(src, len); 24 + user_read_access_end(); 29 25 return csum; 30 26 } 31 27 EXPORT_SYMBOL(csum_and_copy_from_user); ··· 30 34 { 31 35 __wsum csum; 32 36 33 - might_sleep(); 34 - if (unlikely(!access_ok(dst, len))) 37 + if (unlikely(!user_write_access_begin(dst, len))) 35 38 return 0; 36 - 37 - allow_write_to_user(dst, len); 38 39 39 40 csum = csum_partial_copy_generic(src, (void __force *)dst, len); 40 41 41 - prevent_write_to_user(dst, len); 42 + user_write_access_end(); 42 43 return csum; 43 44 } 44 45 EXPORT_SYMBOL(csum_and_copy_to_user);