Skip to content

Commit 4b281e5

Browse files
Peter ZijlstraKAGA-KOKO
authored andcommitted
x86/entry: __always_inline arch_atomic_* for noinstr
vmlinux.o: warning: objtool: rcu_dynticks_eqs_exit()+0x33: call to arch_atomic_and.constprop.0() leaves .noinstr.text section Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lkml.kernel.org/r/[email protected]
1 parent 7a745be commit 4b281e5

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

arch/x86/include/asm/atomic.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -205,21 +205,21 @@ static __always_inline bool arch_atomic_try_cmpxchg(atomic_t *v, int *old, int n
205205
}
206206
#define arch_atomic_try_cmpxchg arch_atomic_try_cmpxchg
207207

208-
static inline int arch_atomic_xchg(atomic_t *v, int new)
208+
static __always_inline int arch_atomic_xchg(atomic_t *v, int new)
209209
{
210210
return arch_xchg(&v->counter, new);
211211
}
212212
#define arch_atomic_xchg arch_atomic_xchg
213213

214-
static inline void arch_atomic_and(int i, atomic_t *v)
214+
static __always_inline void arch_atomic_and(int i, atomic_t *v)
215215
{
216216
asm volatile(LOCK_PREFIX "andl %1,%0"
217217
: "+m" (v->counter)
218218
: "ir" (i)
219219
: "memory");
220220
}
221221

222-
static inline int arch_atomic_fetch_and(int i, atomic_t *v)
222+
static __always_inline int arch_atomic_fetch_and(int i, atomic_t *v)
223223
{
224224
int val = arch_atomic_read(v);
225225

@@ -229,15 +229,15 @@ static inline int arch_atomic_fetch_and(int i, atomic_t *v)
229229
}
230230
#define arch_atomic_fetch_and arch_atomic_fetch_and
231231

232-
static inline void arch_atomic_or(int i, atomic_t *v)
232+
static __always_inline void arch_atomic_or(int i, atomic_t *v)
233233
{
234234
asm volatile(LOCK_PREFIX "orl %1,%0"
235235
: "+m" (v->counter)
236236
: "ir" (i)
237237
: "memory");
238238
}
239239

240-
static inline int arch_atomic_fetch_or(int i, atomic_t *v)
240+
static __always_inline int arch_atomic_fetch_or(int i, atomic_t *v)
241241
{
242242
int val = arch_atomic_read(v);
243243

@@ -247,15 +247,15 @@ static inline int arch_atomic_fetch_or(int i, atomic_t *v)
247247
}
248248
#define arch_atomic_fetch_or arch_atomic_fetch_or
249249

250-
static inline void arch_atomic_xor(int i, atomic_t *v)
250+
static __always_inline void arch_atomic_xor(int i, atomic_t *v)
251251
{
252252
asm volatile(LOCK_PREFIX "xorl %1,%0"
253253
: "+m" (v->counter)
254254
: "ir" (i)
255255
: "memory");
256256
}
257257

258-
static inline int arch_atomic_fetch_xor(int i, atomic_t *v)
258+
static __always_inline int arch_atomic_fetch_xor(int i, atomic_t *v)
259259
{
260260
int val = arch_atomic_read(v);
261261

0 commit comments

Comments
 (0)