summaryrefslogtreecommitdiff
path: root/arch/sparc/include/asm/uaccess_32.h
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2010-01-05 20:41:48 -0800
committerDavid S. Miller <davem@davemloft.net>2010-01-05 20:41:48 -0800
commit6df1c176994fab993f3112e3e4145a7d2bae64d0 (patch)
treebfbe02788e9e75be4e24285aa49539463a3539f3 /arch/sparc/include/asm/uaccess_32.h
parente04ed38d4e0cd32141f723560efcc8252b0241e2 (diff)
downloadlwn-6df1c176994fab993f3112e3e4145a7d2bae64d0.tar.gz
lwn-6df1c176994fab993f3112e3e4145a7d2bae64d0.zip
sparc: copy_from_user() should not return -EFAULT
From: Heiko Carstens <heiko.carstens@de.ibm.com> Callers of copy_from_user() expect it to return the number of bytes it could not copy. In no case it is supposed to return -EFAULT. In case of a detected buffer overflow just return the requested length. In addition one could think of a memset that would clear the size of the target object. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include/asm/uaccess_32.h')
-rw-r--r--arch/sparc/include/asm/uaccess_32.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
index 489d2ba92bcb..25f1d10155e8 100644
--- a/arch/sparc/include/asm/uaccess_32.h
+++ b/arch/sparc/include/asm/uaccess_32.h
@@ -274,7 +274,7 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un
if (unlikely(sz != -1 && sz < n)) {
copy_from_user_overflow();
- return -EFAULT;
+ return n;
}
if (n && __access_ok((unsigned long) from, n))