On 20/12/13 16:48, Dmitri Vorobiev wrote:
Hi, Maybe it would be better to place the variable definition under #ifdef CONFIG_32BIT || (CONFIG_64BIT && CONFIG_64BIT_O32) #endif In my opinion those pseudo-qualifiers, which simply silence the compiler, are harmful, because they hide the problem instead of solving it. Thanks, Dmitri
I originally did so, but changed it to __maybe_unused as the ifdef block is somewhat ugly. The compiler is sensible to optimize the variable away when it is unused.
I can change it if others also feel that wrapping it in ifdef would be better.
Thanks, Alex
On Fri, Dec 20, 2013 at 6:31 PM, Alex Smith <alex.smith@xxxxxxxxxx <mailto:alex.smith@xxxxxxxxxx>> wrote: Attempting to compile a 64-bit kernel without CONFIG_MIPS32_O32 defined (using GCC 4.8.1) results in the following compilation error: arch/mips/include/asm/syscall.h: In function 'mips_get_syscall_arg': arch/mips/include/asm/syscall.h:32:16: error: unused variable 'usp' [-Werror=unused-variable] Fix by adding __maybe_unsued to the definition of usp. Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx <mailto:alex.smith@xxxxxxxxxx>> Reviewed-by: Markos Chandras <markos.chandras@xxxxxxxxxx <mailto:markos.chandras@xxxxxxxxxx>> --- arch/mips/include/asm/syscall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/mips/include/asm/syscall.h b/arch/mips/include/asm/syscall.h index 81c8913..c48f8d8 100644 --- a/arch/mips/include/asm/syscall.h +++ b/arch/mips/include/asm/syscall.h @@ -29,7 +29,7 @@ static inline long syscall_get_nr(struct task_struct *task, static inline unsigned long mips_get_syscall_arg(unsigned long *arg, struct task_struct *task, struct pt_regs *regs, unsigned int n) { - unsigned long usp = regs->regs[29]; + unsigned long __maybe_unused usp = regs->regs[29]; switch (n) { case 0: case 1: case 2: case 3: -- 1.8.5.2