microblaze: Fix put_user macro for 64bits arguments
For 64bits arguments gcc caused that put_user macro works with wrong value because of optimalization. Adding volatile caused that gcc not optimized it. It is possible to use (as Blackfin do) two put_user macros with 32bits arguments but there is one more instruction which is due to duplication zero return value which is called put_user_asm macro. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
ea3fd1466f
commit
7bcb63b213
|
@ -189,7 +189,7 @@ extern long strnlen_user(const char *src, long count);
|
|||
|
||||
#define __put_user(x, ptr) \
|
||||
({ \
|
||||
__typeof__(*(ptr)) __gu_val = x; \
|
||||
__typeof__(*(ptr)) volatile __gu_val = (x); \
|
||||
long __gu_err = 0; \
|
||||
switch (sizeof(__gu_val)) { \
|
||||
case 1: \
|
||||
|
|
Loading…
Reference in New Issue
Block a user