git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
x86_64
/
lib
/
csum-wrappers.c
diff --git
a/arch/x86_64/lib/csum-wrappers.c
b/arch/x86_64/lib/csum-wrappers.c
index
a8e4c18
..
94323f2
100644
(file)
--- a/
arch/x86_64/lib/csum-wrappers.c
+++ b/
arch/x86_64/lib/csum-wrappers.c
@@
-19,9
+19,10
@@
* src and dst are best aligned to 64bits.
*/
unsigned int
* src and dst are best aligned to 64bits.
*/
unsigned int
-csum_partial_copy_from_user(const
char __user *src, char *dst,
+csum_partial_copy_from_user(const
unsigned char __user *src, unsigned char *dst,
int len, unsigned int isum, int *errp)
{
int len, unsigned int isum, int *errp)
{
+ might_sleep();
*errp = 0;
if (likely(access_ok(VERIFY_READ,src, len))) {
/* Why 6, not 7? To handle odd addresses aligned we
*errp = 0;
if (likely(access_ok(VERIFY_READ,src, len))) {
/* Why 6, not 7? To handle odd addresses aligned we
@@
-43,7
+44,7
@@
csum_partial_copy_from_user(const char __user *src, char *dst,
len -= 2;
}
}
len -= 2;
}
}
- isum = csum_partial_copy_generic((void *)src,dst,len,isum,errp,NULL);
+ isum = csum_partial_copy_generic((
__force
void *)src,dst,len,isum,errp,NULL);
if (likely(*errp == 0))
return isum;
}
if (likely(*errp == 0))
return isum;
}
@@
-66,9
+67,10
@@
EXPORT_SYMBOL(csum_partial_copy_from_user);
* src and dst are best aligned to 64bits.
*/
unsigned int
* src and dst are best aligned to 64bits.
*/
unsigned int
-csum_partial_copy_to_user(
const char *src, char __user *dst,
+csum_partial_copy_to_user(
unsigned const char *src, unsigned char __user *dst,
int len, unsigned int isum, int *errp)
{
int len, unsigned int isum, int *errp)
{
+ might_sleep();
if (unlikely(!access_ok(VERIFY_WRITE, dst, len))) {
*errp = -EFAULT;
return 0;
if (unlikely(!access_ok(VERIFY_WRITE, dst, len))) {
*errp = -EFAULT;
return 0;
@@
-88,7
+90,7
@@
csum_partial_copy_to_user(const char *src, char __user *dst,
}
*errp = 0;
}
*errp = 0;
- return csum_partial_copy_generic(src, (void *)dst,len,isum,NULL,errp);
+ return csum_partial_copy_generic(src, (void
__force
*)dst,len,isum,NULL,errp);
}
EXPORT_SYMBOL(csum_partial_copy_to_user);
}
EXPORT_SYMBOL(csum_partial_copy_to_user);
@@
-103,7
+105,7
@@
EXPORT_SYMBOL(csum_partial_copy_to_user);
* Returns an 32bit unfolded checksum of the buffer.
*/
unsigned int
* Returns an 32bit unfolded checksum of the buffer.
*/
unsigned int
-csum_partial_copy_nocheck(const
char *src,
char *dst, int len, unsigned int sum)
+csum_partial_copy_nocheck(const
unsigned char *src, unsigned
char *dst, int len, unsigned int sum)
{
return csum_partial_copy_generic(src,dst,len,sum,NULL,NULL);
}
{
return csum_partial_copy_generic(src,dst,len,sum,NULL,NULL);
}