summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2004-07-10 19:29:02 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-10 19:29:02 -0700
commit69867f861ed13ce7967516e031452608164884e8 (patch)
treef103647730bacbe052cc66377f68f7f850ac9feb /include
parent3b78f5c578f2d650b74120ed5174dbeb5a09ee2f (diff)
[PATCH] ppc64: uninline some user copy routines
gcc 3.5 is complaining about the size of copy_from_user. It turns out it is rather large and putting it out of line saves us about 30kB on a default kernel build. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-ppc64/uaccess.h33
1 files changed, 6 insertions, 27 deletions
diff --git a/include/asm-ppc64/uaccess.h b/include/asm-ppc64/uaccess.h
index 9423be5add95..4d2d6097802b 100644
--- a/include/asm-ppc64/uaccess.h
+++ b/include/asm-ppc64/uaccess.h
@@ -272,33 +272,12 @@ __copy_to_user(void __user *to, const void *from, unsigned long n)
#define __copy_in_user(to, from, size) \
__copy_tofrom_user((to), (from), (size))
-static inline unsigned long
-copy_from_user(void *to, const void __user *from, unsigned long n)
-{
- if (likely(access_ok(VERIFY_READ, from, n)))
- n = __copy_from_user(to, from, n);
- else
- memset(to, 0, n);
- return n;
-}
-
-static inline unsigned long
-copy_to_user(void __user *to, const void *from, unsigned long n)
-{
- if (likely(access_ok(VERIFY_WRITE, to, n)))
- n = __copy_to_user(to, from, n);
- return n;
-}
-
-static inline unsigned long
-copy_in_user(void __user *to, const void __user *from, unsigned long n)
-{
- might_sleep();
- if (likely(access_ok(VERIFY_READ, from, n) &&
- access_ok(VERIFY_WRITE, to, n)))
- n =__copy_tofrom_user(to, from, n);
- return n;
-}
+extern unsigned long copy_from_user(void *to, const void __user *from,
+ unsigned long n);
+extern unsigned long copy_to_user(void __user *to, const void *from,
+ unsigned long n);
+extern unsigned long copy_in_user(void __user *to, const void __user *from,
+ unsigned long n);
extern unsigned long __clear_user(void __user *addr, unsigned long size);