diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2013-11-19 19:23:06 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-11-19 19:23:06 -0500 |
commit | df87effeedc3a8d21570c4b1cad6f84eff68abde (patch) | |
tree | 1d3682bc086e828aa25d66ad03d513c2c405d6ab /arch/x86/include/asm/checksum_32.h | |
parent | 492b96082c7baa1f750239d431a2ca38a5c4d5e5 (diff) | |
parent | 4f99adb5d342eeb96dc8e13111cd08c6fa4ba43e (diff) |
Merge tag 'v3.8.13.10' into v3.8-rt
v3.8.13.10
Conflicts:
mm/swap.c
Diffstat (limited to 'arch/x86/include/asm/checksum_32.h')
-rw-r--r-- | arch/x86/include/asm/checksum_32.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h index 46fc474fd819..f50de6951738 100644 --- a/arch/x86/include/asm/checksum_32.h +++ b/arch/x86/include/asm/checksum_32.h @@ -49,9 +49,15 @@ static inline __wsum csum_partial_copy_from_user(const void __user *src, int len, __wsum sum, int *err_ptr) { + __wsum ret; + might_sleep(); - return csum_partial_copy_generic((__force void *)src, dst, - len, sum, err_ptr, NULL); + stac(); + ret = csum_partial_copy_generic((__force void *)src, dst, + len, sum, err_ptr, NULL); + clac(); + + return ret; } /* @@ -176,10 +182,16 @@ static inline __wsum csum_and_copy_to_user(const void *src, int len, __wsum sum, int *err_ptr) { + __wsum ret; + might_sleep(); - if (access_ok(VERIFY_WRITE, dst, len)) - return csum_partial_copy_generic(src, (__force void *)dst, - len, sum, NULL, err_ptr); + if (access_ok(VERIFY_WRITE, dst, len)) { + stac(); + ret = csum_partial_copy_generic(src, (__force void *)dst, + len, sum, NULL, err_ptr); + clac(); + return ret; + } if (len) *err_ptr = -EFAULT; |