diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-07-26 17:35:39 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-26 11:11:57 -0700 |
commit | fdd33961e983dd5b1983c54ef39d243c88a4bffc (patch) | |
tree | 92f035fb0b89c1c6bbd511b5caa336b0a0d297a7 /include | |
parent | c47ffe3d3d841986108a8316f6e01792cb45d0d2 (diff) | |
download | op-kernel-dev-fdd33961e983dd5b1983c54ef39d243c88a4bffc.zip op-kernel-dev-fdd33961e983dd5b1983c54ef39d243c88a4bffc.tar.gz |
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 9df30b9..f4ce876 100644 --- a/include/asm-x86_64/uaccess.h +++ b/include/asm-x86_64/uaccess.h @@ -100,7 +100,7 @@ struct exception_table_entry case 8: __get_user_x(8,__ret_gu,__val_gu,ptr); break; \ default: __get_user_bad(); break; \ } \ - (x) = (typeof(*(ptr)))__val_gu; \ + (x) = (__force typeof(*(ptr)))__val_gu; \ __ret_gu; \ }) @@ -192,7 +192,7 @@ struct __large_struct { unsigned long buf[100]; }; int __gu_err; \ unsigned long __gu_val; \ __get_user_size(__gu_val,(ptr),(size),__gu_err); \ - (x) = (typeof(*(ptr)))__gu_val; \ + (x) = (__force typeof(*(ptr)))__gu_val; \ __gu_err; \ }) |