mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/core/dev.c
This commit is contained in:
commit
2198a10b50
192 changed files with 1302 additions and 757 deletions
|
|
@ -58,30 +58,17 @@ int rds_page_copy_user(struct page *page, unsigned long offset,
|
|||
unsigned long ret;
|
||||
void *addr;
|
||||
|
||||
if (to_user)
|
||||
addr = kmap(page);
|
||||
if (to_user) {
|
||||
rds_stats_add(s_copy_to_user, bytes);
|
||||
else
|
||||
ret = copy_to_user(ptr, addr + offset, bytes);
|
||||
} else {
|
||||
rds_stats_add(s_copy_from_user, bytes);
|
||||
|
||||
addr = kmap_atomic(page, KM_USER0);
|
||||
if (to_user)
|
||||
ret = __copy_to_user_inatomic(ptr, addr + offset, bytes);
|
||||
else
|
||||
ret = __copy_from_user_inatomic(addr + offset, ptr, bytes);
|
||||
kunmap_atomic(addr, KM_USER0);
|
||||
|
||||
if (ret) {
|
||||
addr = kmap(page);
|
||||
if (to_user)
|
||||
ret = copy_to_user(ptr, addr + offset, bytes);
|
||||
else
|
||||
ret = copy_from_user(addr + offset, ptr, bytes);
|
||||
kunmap(page);
|
||||
if (ret)
|
||||
return -EFAULT;
|
||||
ret = copy_from_user(addr + offset, ptr, bytes);
|
||||
}
|
||||
kunmap(page);
|
||||
|
||||
return 0;
|
||||
return ret ? -EFAULT : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rds_page_copy_user);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue