diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
| commit | 1ebbe2b20091d306453a5cf480a87e6cd28ae76f (patch) | |
| tree | f5cd7a0fa69b8b1938cb5a0faed2e7b0628072a5 /include/asm-i386/uaccess.h | |
| parent | ac58c9059da8886b5e8cde012a80266b18ca146e (diff) | |
| parent | 674a396c6d2ba0341ebdd7c1c9950f32f018e2dd (diff) | |
Merge branch 'linus'
Diffstat (limited to 'include/asm-i386/uaccess.h')
| -rw-r--r-- | include/asm-i386/uaccess.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/include/asm-i386/uaccess.h b/include/asm-i386/uaccess.h index 3f1337c34208..371457b1ceb6 100644 --- a/include/asm-i386/uaccess.h +++ b/include/asm-i386/uaccess.h | |||
| @@ -197,13 +197,15 @@ extern void __put_user_8(void); | |||
| 197 | 197 | ||
| 198 | #define put_user(x,ptr) \ | 198 | #define put_user(x,ptr) \ |
| 199 | ({ int __ret_pu; \ | 199 | ({ int __ret_pu; \ |
| 200 | __typeof__(*(ptr)) __pu_val; \ | ||
| 200 | __chk_user_ptr(ptr); \ | 201 | __chk_user_ptr(ptr); \ |
| 202 | __pu_val = x; \ | ||
| 201 | switch(sizeof(*(ptr))) { \ | 203 | switch(sizeof(*(ptr))) { \ |
| 202 | case 1: __put_user_1(x, ptr); break; \ | 204 | case 1: __put_user_1(__pu_val, ptr); break; \ |
| 203 | case 2: __put_user_2(x, ptr); break; \ | 205 | case 2: __put_user_2(__pu_val, ptr); break; \ |
| 204 | case 4: __put_user_4(x, ptr); break; \ | 206 | case 4: __put_user_4(__pu_val, ptr); break; \ |
| 205 | case 8: __put_user_8(x, ptr); break; \ | 207 | case 8: __put_user_8(__pu_val, ptr); break; \ |
| 206 | default:__put_user_X(x, ptr); break; \ | 208 | default:__put_user_X(__pu_val, ptr); break; \ |
| 207 | } \ | 209 | } \ |
| 208 | __ret_pu; \ | 210 | __ret_pu; \ |
| 209 | }) | 211 | }) |
