| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: "David S. Miller" <davem@davemloft.net> |
| Date: Tue, 3 Apr 2018 08:24:35 -0700 |
| Subject: sparc64: Make atomic_xchg() an inline function rather than a macro. |
| |
| From: "David S. Miller" <davem@davemloft.net> |
| |
| [ Upstream commit d13864b68e41c11e4231de90cf358658f6ecea45 ] |
| |
| This avoids a lot of -Wunused warnings such as: |
| |
| ==================== |
| kernel/debug/debug_core.c: In function ‘kgdb_cpu_enter’: |
| ./arch/sparc/include/asm/cmpxchg_64.h:55:22: warning: value computed is not used [-Wunused-value] |
| #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) |
| |
| ./arch/sparc/include/asm/atomic_64.h:86:30: note: in expansion of macro ‘xchg’ |
| #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) |
| ^~~~ |
| kernel/debug/debug_core.c:508:4: note: in expansion of macro ‘atomic_xchg’ |
| atomic_xchg(&kgdb_active, cpu); |
| ^~~~~~~~~~~ |
| ==================== |
| |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sparc/include/asm/atomic_64.h | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/arch/sparc/include/asm/atomic_64.h |
| +++ b/arch/sparc/include/asm/atomic_64.h |
| @@ -82,7 +82,11 @@ ATOMIC_OPS(xor) |
| #define atomic64_add_negative(i, v) (atomic64_add_return(i, v) < 0) |
| |
| #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) |
| -#define atomic_xchg(v, new) (xchg(&((v)->counter), new)) |
| + |
| +static inline int atomic_xchg(atomic_t *v, int new) |
| +{ |
| + return xchg(&v->counter, new); |
| +} |
| |
| static inline int __atomic_add_unless(atomic_t *v, int a, int u) |
| { |