From: Oleg Nesterov set_mb() is used by set_current_state() which needs mb(), not wmb(). I think it would be right to assume that set_mb() implies mb(), all arches seem to do just this. Signed-off-by: Oleg Nesterov Cc: David Howells Signed-off-by: Andrew Morton --- Documentation/memory-barriers.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN Documentation/memory-barriers.txt~a-minor-fix-for-set_mb-in-documentation-memory-barrierstxt Documentation/memory-barriers.txt --- a/Documentation/memory-barriers.txt~a-minor-fix-for-set_mb-in-documentation-memory-barrierstxt +++ a/Documentation/memory-barriers.txt @@ -1016,7 +1016,7 @@ There are some more advanced barrier fun (*) set_mb(var, value) - This assigns the value to the variable and then inserts at least a write + This assigns the value to the variable and then inserts a full memory barrier after it, depending on the function. It isn't guaranteed to insert anything more than a compiler barrier in a UP compilation. _