| .. | .. | 
|---|
| 27 | 27 |   * better 64-bit) boundary | 
|---|
| 28 | 28 |   */ | 
|---|
| 29 | 29 |   | 
|---|
| 30 |  | -asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,  | 
|---|
| 31 |  | -					    int len, __wsum sum,  | 
|---|
| 32 |  | -					    int *src_err_ptr, int *dst_err_ptr);  | 
|---|
 | 30 | +asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst, int len);  | 
|---|
| 33 | 31 |   | 
|---|
| 34 | 32 |  /* | 
|---|
| 35 | 33 |   *	Note: when you get a NULL pointer exception here this means someone | 
|---|
| .. | .. | 
|---|
| 38 | 36 |   *	If you use these functions directly please don't forget the | 
|---|
| 39 | 37 |   *	access_ok(). | 
|---|
| 40 | 38 |   */ | 
|---|
| 41 |  | -static inline __wsum csum_partial_copy_nocheck(const void *src, void *dst,  | 
|---|
| 42 |  | -					       int len, __wsum sum)  | 
|---|
 | 39 | +static inline __wsum csum_partial_copy_nocheck(const void *src, void *dst, int len)  | 
|---|
| 43 | 40 |  { | 
|---|
| 44 |  | -	return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL);  | 
|---|
 | 41 | +	return csum_partial_copy_generic(src, dst, len);  | 
|---|
| 45 | 42 |  } | 
|---|
| 46 | 43 |   | 
|---|
| 47 |  | -static inline __wsum csum_partial_copy_from_user(const void __user *src,  | 
|---|
| 48 |  | -						 void *dst,  | 
|---|
| 49 |  | -						 int len, __wsum sum,  | 
|---|
| 50 |  | -						 int *err_ptr)  | 
|---|
 | 44 | +static inline __wsum csum_and_copy_from_user(const void __user *src,  | 
|---|
 | 45 | +					     void *dst, int len)  | 
|---|
| 51 | 46 |  { | 
|---|
| 52 | 47 |  	__wsum ret; | 
|---|
| 53 | 48 |   | 
|---|
| 54 | 49 |  	might_sleep(); | 
|---|
| 55 |  | -	stac();  | 
|---|
| 56 |  | -	ret = csum_partial_copy_generic((__force void *)src, dst,  | 
|---|
| 57 |  | -					len, sum, err_ptr, NULL);  | 
|---|
| 58 |  | -	clac();  | 
|---|
 | 50 | +	if (!user_access_begin(src, len))  | 
|---|
 | 51 | +		return 0;  | 
|---|
 | 52 | +	ret = csum_partial_copy_generic((__force void *)src, dst, len);  | 
|---|
 | 53 | +	user_access_end();  | 
|---|
| 59 | 54 |   | 
|---|
| 60 | 55 |  	return ret; | 
|---|
| 61 | 56 |  } | 
|---|
| .. | .. | 
|---|
| 173 | 168 |  /* | 
|---|
| 174 | 169 |   *	Copy and checksum to user | 
|---|
| 175 | 170 |   */ | 
|---|
| 176 |  | -#define HAVE_CSUM_COPY_USER  | 
|---|
| 177 | 171 |  static inline __wsum csum_and_copy_to_user(const void *src, | 
|---|
| 178 | 172 |  					   void __user *dst, | 
|---|
| 179 |  | -					   int len, __wsum sum,  | 
|---|
| 180 |  | -					   int *err_ptr)  | 
|---|
 | 173 | +					   int len)  | 
|---|
| 181 | 174 |  { | 
|---|
| 182 | 175 |  	__wsum ret; | 
|---|
| 183 | 176 |   | 
|---|
| 184 | 177 |  	might_sleep(); | 
|---|
| 185 |  | -	if (access_ok(VERIFY_WRITE, dst, len)) {  | 
|---|
| 186 |  | -		stac();  | 
|---|
| 187 |  | -		ret = csum_partial_copy_generic(src, (__force void *)dst,  | 
|---|
| 188 |  | -						len, sum, NULL, err_ptr);  | 
|---|
| 189 |  | -		clac();  | 
|---|
| 190 |  | -		return ret;  | 
|---|
| 191 |  | -	}  | 
|---|
 | 178 | +	if (!user_access_begin(dst, len))  | 
|---|
 | 179 | +		return 0;  | 
|---|
| 192 | 180 |   | 
|---|
| 193 |  | -	if (len)  | 
|---|
| 194 |  | -		*err_ptr = -EFAULT;  | 
|---|
| 195 |  | -  | 
|---|
| 196 |  | -	return (__force __wsum)-1; /* invalid checksum */  | 
|---|
 | 181 | +	ret = csum_partial_copy_generic(src, (__force void *)dst, len);  | 
|---|
 | 182 | +	user_access_end();  | 
|---|
 | 183 | +	return ret;  | 
|---|
| 197 | 184 |  } | 
|---|
| 198 | 185 |   | 
|---|
| 199 | 186 |  #endif /* _ASM_X86_CHECKSUM_32_H */ | 
|---|