Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 322636
b: refs/heads/master
c: ad72907
h: refs/heads/master
v: v3
  • Loading branch information
Will Deacon authored and Russell King committed Sep 9, 2012
1 parent fa71cee commit 796d8e4
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8404663f81d212918ff85f493649a7991209fa04
refs/heads/master: ad72907acd2943304c292ae36960bb66e6dc23c9
18 changes: 16 additions & 2 deletions trunk/arch/arm/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ extern int __get_user_4(void *);
: "0" (__p), "r" (__l) \
: __GUP_CLOBBER_##__s)

#define get_user(x,p) \
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
register const typeof(*(p)) __user *__p asm("r0") = (p);\
Expand All @@ -141,6 +141,12 @@ extern int __get_user_4(void *);
__e; \
})

#define get_user(x,p) \
({ \
might_fault(); \
__get_user_check(x,p); \
})

extern int __put_user_1(void *, unsigned int);
extern int __put_user_2(void *, unsigned int);
extern int __put_user_4(void *, unsigned int);
Expand All @@ -155,7 +161,7 @@ extern int __put_user_8(void *, unsigned long long);
: "0" (__p), "r" (__r2), "r" (__l) \
: "ip", "lr", "cc")

#define put_user(x,p) \
#define __put_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
register const typeof(*(p)) __r2 asm("r2") = (x); \
Expand All @@ -180,6 +186,12 @@ extern int __put_user_8(void *, unsigned long long);
__e; \
})

#define put_user(x,p) \
({ \
might_fault(); \
__put_user_check(x,p); \
})

#else /* CONFIG_MMU */

/*
Expand Down Expand Up @@ -233,6 +245,7 @@ do { \
unsigned long __gu_addr = (unsigned long)(ptr); \
unsigned long __gu_val; \
__chk_user_ptr(ptr); \
might_fault(); \
switch (sizeof(*(ptr))) { \
case 1: __get_user_asm_byte(__gu_val,__gu_addr,err); break; \
case 2: __get_user_asm_half(__gu_val,__gu_addr,err); break; \
Expand Down Expand Up @@ -314,6 +327,7 @@ do { \
unsigned long __pu_addr = (unsigned long)(ptr); \
__typeof__(*(ptr)) __pu_val = (x); \
__chk_user_ptr(ptr); \
might_fault(); \
switch (sizeof(*(ptr))) { \
case 1: __put_user_asm_byte(__pu_val,__pu_addr,err); break; \
case 2: __put_user_asm_half(__pu_val,__pu_addr,err); break; \
Expand Down

0 comments on commit 796d8e4

Please sign in to comment.