[PATCH] m32r: fix and update for gcc-4.0
Fix and update for gcc-4.0. - arch/m32r/kernel/signal.c: Change type of the 8th parameter of sys_rt_sigsuspend() from 'struct pt_regs' to 'struct pt_regs *'. This functions make use of the 'regs' parameter to return status value, but gcc-4.0 optimizes and removes it as a dead code. Functions, sys_sigaltstack() and sys_rt_sigreturn(), have also modified. - arch/m32r/lib/usercopy.c, include/asm-m32r/uaccess.h: Add early-clobber constraints('&') to output values of asm statements; these constraints seems to be required for gcc-4.0 register assignment. Signed-off-by: Hayato Fujiwara <fujiwara@linux-m32r.org> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
cde05cf214
commit
6ced13cdca
@@ -328,7 +328,7 @@ extern void __put_user_bad(void);
|
||||
" .long 1b,4b\n" \
|
||||
" .long 2b,4b\n" \
|
||||
".previous" \
|
||||
: "=r"(err) \
|
||||
: "=&r"(err) \
|
||||
: "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \
|
||||
: "r14", "memory")
|
||||
|
||||
@@ -353,7 +353,7 @@ extern void __put_user_bad(void);
|
||||
" .long 1b,4b\n" \
|
||||
" .long 2b,4b\n" \
|
||||
".previous" \
|
||||
: "=r"(err) \
|
||||
: "=&r"(err) \
|
||||
: "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \
|
||||
: "r14", "memory")
|
||||
#else
|
||||
@@ -398,7 +398,7 @@ struct __large_struct { unsigned long buf[100]; };
|
||||
" .balign 4\n" \
|
||||
" .long 1b,3b\n" \
|
||||
".previous" \
|
||||
: "=r"(err) \
|
||||
: "=&r"(err) \
|
||||
: "r"(x), "r"(addr), "i"(-EFAULT), "0"(err) \
|
||||
: "r14", "memory")
|
||||
|
||||
@@ -442,7 +442,7 @@ do { \
|
||||
" .balign 4\n" \
|
||||
" .long 1b,3b\n" \
|
||||
".previous" \
|
||||
: "=r"(err), "=&r"(x) \
|
||||
: "=&r"(err), "=&r"(x) \
|
||||
: "r"(addr), "i"(-EFAULT), "0"(err) \
|
||||
: "r14", "memory")
|
||||
|
||||
|
Reference in New Issue
Block a user