Commit 4bb6657d authored by Davidlohr Bueso's avatar Davidlohr Bueso Committed by Linus Torvalds

ipc,msg: document volatile r_msg

The need for volatile is not obvious, document it.
Signed-off-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
Signed-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
Cc: Aswin Chandramouleeswaran <aswin@hp.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3440a6bd
...@@ -42,9 +42,7 @@ ...@@ -42,9 +42,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include "util.h" #include "util.h"
/* /* one msg_receiver structure for each sleeping receiver */
* one msg_receiver structure for each sleeping receiver:
*/
struct msg_receiver { struct msg_receiver {
struct list_head r_list; struct list_head r_list;
struct task_struct *r_tsk; struct task_struct *r_tsk;
...@@ -53,6 +51,12 @@ struct msg_receiver { ...@@ -53,6 +51,12 @@ struct msg_receiver {
long r_msgtype; long r_msgtype;
long r_maxsize; 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; struct msg_msg *volatile r_msg;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment