|
@@ -446,13 +446,16 @@ fast_shmem_write(struct page **pages,
|
|
|
int length)
|
|
|
{
|
|
|
char __iomem *vaddr;
|
|
|
+ unsigned long unwritten;
|
|
|
|
|
|
vaddr = kmap_atomic(pages[page_base >> PAGE_SHIFT], KM_USER0);
|
|
|
if (vaddr == NULL)
|
|
|
return -ENOMEM;
|
|
|
- __copy_from_user_inatomic(vaddr + page_offset, data, length);
|
|
|
+ unwritten = __copy_from_user_inatomic(vaddr + page_offset, data, length);
|
|
|
kunmap_atomic(vaddr, KM_USER0);
|
|
|
|
|
|
+ if (unwritten)
|
|
|
+ return -EFAULT;
|
|
|
return 0;
|
|
|
}
|
|
|
|