Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57f7c037 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

asm-generic: guard smp_store_release/load_acquire



Allow architectures to override smp_store_release
and smp_load_acquire by guarding the defines
in asm-generic/barrier.h with ifndef directives.

This is in preparation to reusing asm-generic/barrier.h
on architectures which have their own definition
of these macros.

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
parent 5a1b26d7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -104,13 +104,16 @@
#define smp_mb__after_atomic()	smp_mb()
#endif

#ifndef smp_store_release
#define smp_store_release(p, v)						\
do {									\
	compiletime_assert_atomic_type(*p);				\
	smp_mb();							\
	WRITE_ONCE(*p, v);						\
} while (0)
#endif

#ifndef smp_load_acquire
#define smp_load_acquire(p)						\
({									\
	typeof(*p) ___p1 = READ_ONCE(*p);				\
@@ -118,6 +121,7 @@ do { \
	smp_mb();							\
	___p1;								\
})
#endif

#endif /* !__ASSEMBLY__ */
#endif /* __ASM_GENERIC_BARRIER_H */