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

Commit f17520e1 authored by David Howells's avatar David Howells Committed by Linus Torvalds
Browse files

FRV: Don't make smp_{r, w, }mb() interpolate MEMBAR when CONFIG_SMP=n [try #2]



Don't make smp_{r,w,}mb() interpolate a MEMBAR instruction when CONFIG_SMP=n as
SMP memory barries on UP systems should interpolate a compiler barrier only.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ed9b949f
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -179,14 +179,23 @@ do { \
#define mb()			asm volatile ("membar" : : :"memory")
#define rmb()			asm volatile ("membar" : : :"memory")
#define wmb()			asm volatile ("membar" : : :"memory")
#define set_mb(var, value)	do { var = value; mb(); } while (0)
#define read_barrier_depends()	barrier()

#ifdef CONFIG_SMP
#define smp_mb()			mb()
#define smp_rmb()			rmb()
#define smp_wmb()			wmb()

#define read_barrier_depends()		do {} while(0)
#define smp_read_barrier_depends()	read_barrier_depends()
#define set_mb(var, value) \
	do { xchg(&var, (value)); } while (0)
#else
#define smp_mb()			barrier()
#define smp_rmb()			barrier()
#define smp_wmb()			barrier()
#define smp_read_barrier_depends()	do {} while(0)
#define set_mb(var, value) \
	do { var = (value); barrier(); } while (0)
#endif

#define HARD_RESET_NOW()			\
do {						\