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
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
include
/
asm-powerpc
/
uaccess.h
diff --git
a/include/asm-powerpc/uaccess.h
b/include/asm-powerpc/uaccess.h
index
3872e92
..
adbf16b
100644
(file)
--- a/
include/asm-powerpc/uaccess.h
+++ b/
include/asm-powerpc/uaccess.h
@@
-7,6
+7,7
@@
#include <linux/sched.h>
#include <linux/errno.h>
#include <asm/processor.h>
#include <linux/sched.h>
#include <linux/errno.h>
#include <asm/processor.h>
+#include <asm/page.h>
#define VERIFY_READ 0
#define VERIFY_WRITE 1
#define VERIFY_READ 0
#define VERIFY_WRITE 1
@@
-179,9
+180,11
@@
do { \
#define __put_user_nocheck(x, ptr, size) \
({ \
long __pu_err; \
#define __put_user_nocheck(x, ptr, size) \
({ \
long __pu_err; \
- might_sleep(); \
+ __typeof__(*(ptr)) __user *__pu_addr = (ptr); \
+ if (!is_kernel_addr((unsigned long)__pu_addr)) \
+ might_sleep(); \
__chk_user_ptr(ptr); \
__chk_user_ptr(ptr); \
- __put_user_size((x),
(ptr), (size), __pu_err);
\
+ __put_user_size((x),
__pu_addr, (size), __pu_err);
\
__pu_err; \
})
__pu_err; \
})
@@
-258,9
+261,11
@@
do { \
({ \
long __gu_err; \
unsigned long __gu_val; \
({ \
long __gu_err; \
unsigned long __gu_val; \
+ const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
__chk_user_ptr(ptr); \
__chk_user_ptr(ptr); \
- might_sleep(); \
- __get_user_size(__gu_val, (ptr), (size), __gu_err); \
+ if (!is_kernel_addr((unsigned long)__gu_addr)) \
+ might_sleep(); \
+ __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
(x) = (__typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
(x) = (__typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
@@
-270,9
+275,11
@@
do { \
({ \
long __gu_err; \
long long __gu_val; \
({ \
long __gu_err; \
long long __gu_val; \
+ const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
__chk_user_ptr(ptr); \
__chk_user_ptr(ptr); \
- might_sleep(); \
- __get_user_size(__gu_val, (ptr), (size), __gu_err); \
+ if (!is_kernel_addr((unsigned long)__gu_addr)) \
+ might_sleep(); \
+ __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
(x) = (__typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
(x) = (__typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
@@
-297,7
+304,7
@@
extern unsigned long __copy_tofrom_user(void __user *to,
#ifndef __powerpc64__
#ifndef __powerpc64__
-
extern
inline unsigned long copy_from_user(void *to,
+
static
inline unsigned long copy_from_user(void *to,
const void __user *from, unsigned long n)
{
unsigned long over;
const void __user *from, unsigned long n)
{
unsigned long over;
@@
-312,7
+319,7
@@
extern inline unsigned long copy_from_user(void *to,
return n;
}
return n;
}
-
extern
inline unsigned long copy_to_user(void __user *to,
+
static
inline unsigned long copy_to_user(void __user *to,
const void *from, unsigned long n)
{
unsigned long over;
const void *from, unsigned long n)
{
unsigned long over;