diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-07-26 12:35:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-26 14:11:57 -0400 |
commit | fdd33961e983dd5b1983c54ef39d243c88a4bffc (patch) | |
tree | 92f035fb0b89c1c6bbd511b5caa336b0a0d297a7 /include | |
parent | c47ffe3d3d841986108a8316f6e01792cb45d0d2 (diff) |
amd64: fix get_user() on bitwise
We really need force-cast when converting to final result type;
unsigned long can be silently converted to integer types and
to pointers, but not to bitwise.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86_64/uaccess.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-x86_64/uaccess.h b/include/asm-x86_64/uaccess.h index 9df30b939c4e..f4ce8768ad44 100644 --- a/include/asm-x86_64/uaccess.h +++ b/include/asm-x86_64/uaccess.h | |||
@@ -100,7 +100,7 @@ struct exception_table_entry | |||
100 | case 8: __get_user_x(8,__ret_gu,__val_gu,ptr); break; \ | 100 | case 8: __get_user_x(8,__ret_gu,__val_gu,ptr); break; \ |
101 | default: __get_user_bad(); break; \ | 101 | default: __get_user_bad(); break; \ |
102 | } \ | 102 | } \ |
103 | (x) = (typeof(*(ptr)))__val_gu; \ | 103 | (x) = (__force typeof(*(ptr)))__val_gu; \ |
104 | __ret_gu; \ | 104 | __ret_gu; \ |
105 | }) | 105 | }) |
106 | 106 | ||
@@ -192,7 +192,7 @@ struct __large_struct { unsigned long buf[100]; }; | |||
192 | int __gu_err; \ | 192 | int __gu_err; \ |
193 | unsigned long __gu_val; \ | 193 | unsigned long __gu_val; \ |
194 | __get_user_size(__gu_val,(ptr),(size),__gu_err); \ | 194 | __get_user_size(__gu_val,(ptr),(size),__gu_err); \ |
195 | (x) = (typeof(*(ptr)))__gu_val; \ | 195 | (x) = (__force typeof(*(ptr)))__gu_val; \ |
196 | __gu_err; \ | 196 | __gu_err; \ |
197 | }) | 197 | }) |
198 | 198 | ||