-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PATCH] alpha: atomic dependency fix
My alpha build is exploding because asm/atomic.h now needs smb_mb(), which is over in the (not included) system.h. I fear what will happen if I include system.h into atomic.h, so let's put the barriers into their own header file. Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
- Loading branch information
Andrew Morton
authored and
Linus Torvalds
committed
Oct 25, 2005
1 parent
c14e2cf
commit 0db9ae4
Showing
3 changed files
with
37 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#ifndef __BARRIER_H | ||
#define __BARRIER_H | ||
|
||
#define mb() \ | ||
__asm__ __volatile__("mb": : :"memory") | ||
|
||
#define rmb() \ | ||
__asm__ __volatile__("mb": : :"memory") | ||
|
||
#define wmb() \ | ||
__asm__ __volatile__("wmb": : :"memory") | ||
|
||
#define read_barrier_depends() \ | ||
__asm__ __volatile__("mb": : :"memory") | ||
|
||
#ifdef CONFIG_SMP | ||
#define smp_mb() mb() | ||
#define smp_rmb() rmb() | ||
#define smp_wmb() wmb() | ||
#define smp_read_barrier_depends() read_barrier_depends() | ||
#else | ||
#define smp_mb() barrier() | ||
#define smp_rmb() barrier() | ||
#define smp_wmb() barrier() | ||
#define smp_read_barrier_depends() barrier() | ||
#endif | ||
|
||
#define set_mb(var, value) \ | ||
do { var = value; mb(); } while (0) | ||
|
||
#define set_wmb(var, value) \ | ||
do { var = value; wmb(); } while (0) | ||
|
||
#endif /* __BARRIER_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters