summary refs log tree commit diff
path: root/ipc
diff options
context:
space:
mode:
authorDavidlohr Bueso <davidlohr@hp.com>2014-06-06 14:37:46 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-06 16:08:15 -0700
commit4bb6657dd3a55ab507502d82dbee9db276602669 (patch)
tree1f1f5f3edd91b4d7cd4244d2485fdadd794c0265 /ipc
parent3440a6bd1d2eeb27276f6bd410e0902dcba09f0e (diff)
downloadlinux-4bb6657dd3a55ab507502d82dbee9db276602669.tar.gz
ipc,msg: document volatile r_msg
The need for volatile is not obvious, document it.

Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Cc: Aswin Chandramouleeswaran <aswin@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc')
-rw-r--r--ipc/msg.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ipc/msg.c b/ipc/msg.c
index 6d33e30c7c39..c5d8e3749985 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -42,9 +42,7 @@
 #include <linux/uaccess.h>
 #include "util.h"
 
-/*
- * one msg_receiver structure for each sleeping receiver:
- */
+/* one msg_receiver structure for each sleeping receiver */
 struct msg_receiver {
 	struct list_head	r_list;
 	struct task_struct	*r_tsk;
@@ -53,6 +51,12 @@ struct msg_receiver {
 	long			r_msgtype;
 	long			r_maxsize;
 
+	/*
+	 * Mark r_msg volatile so that the compiler
+	 * does not try to get smart and optimize
+	 * it. We rely on this for the lockless
+	 * receive algorithm.
+	 */
 	struct msg_msg		*volatile r_msg;
 };