• Will Deacon's avatar
    arm64: xchg: prevent warning if return value is unused · e1dfda9c
    Will Deacon authored
    Some users of xchg() don't bother using the return value, which results
    in a compiler warning like the following (from kgdb):
    
    In file included from linux/arch/arm64/include/asm/atomic.h:27:0,
                     from include/linux/atomic.h:4,
                     from include/linux/spinlock.h:402,
                     from include/linux/seqlock.h:35,
                     from include/linux/time.h:5,
                     from include/uapi/linux/timex.h:56,
                     from include/linux/timex.h:56,
                     from include/linux/sched.h:19,
                     from include/linux/pid_namespace.h:4,
                     from kernel/debug/debug_core.c:30:
    kernel/debug/debug_core.c: In function ‘kgdb_cpu_enter’:
    linux/arch/arm64/include/asm/cmpxchg.h:75:3: warning: value computed is not used [-Wunused-value]
      ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
       ^
    linux/arch/arm64/include/asm/atomic.h:132:30: note: in expansion of macro ‘xchg’
     #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
    
    kernel/debug/debug_core.c:504:4: note: in expansion of macro ‘atomic_xchg’
        atomic_xchg(&kgdb_active, cpu);
        ^
    
    This patch makes use of the same trick as we do for cmpxchg, by assigning
    the return value to a dummy variable in the xchg() macro itself.
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    e1dfda9c
cmpxchg.h 3.98 KB