提交 bb83da05 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

[PATCH] uml: fix build warnings in __get_user

Fix a gcc warning about losing qualifiers to the first argument of
copy_from_user.  The typeof change for correctness, and fixes a lot of the
warnings, but there are some cases where x has some extra qualifiers, like
volatile, which copy_from_user can't know about.  For these, the void * cast
seems to be necessary.

Also cleaned up some of the whitespace and got rid of the emacs comment at the
bottom.
Signed-off-by: NJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 dbffa471
...@@ -41,16 +41,16 @@ ...@@ -41,16 +41,16 @@
#define __get_user(x, ptr) \ #define __get_user(x, ptr) \
({ \ ({ \
const __typeof__(ptr) __private_ptr = ptr; \ const __typeof__(ptr) __private_ptr = ptr; \
__typeof__(*(__private_ptr)) __private_val; \ __typeof__(x) __private_val; \
int __private_ret = -EFAULT; \ int __private_ret = -EFAULT; \
(x) = (__typeof__(*(__private_ptr)))0; \ (x) = (__typeof__(*(__private_ptr)))0; \
if (__copy_from_user(&__private_val, (__private_ptr), \ if (__copy_from_user((void *) &__private_val, (__private_ptr), \
sizeof(*(__private_ptr))) == 0) {\ sizeof(*(__private_ptr))) == 0) { \
(x) = (__typeof__(*(__private_ptr))) __private_val; \ (x) = (__typeof__(*(__private_ptr))) __private_val; \
__private_ret = 0; \ __private_ret = 0; \
} \ } \
__private_ret; \ __private_ret; \
}) })
#define get_user(x, ptr) \ #define get_user(x, ptr) \
...@@ -89,14 +89,3 @@ struct exception_table_entry ...@@ -89,14 +89,3 @@ struct exception_table_entry
}; };
#endif #endif
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册