From: Davidlohr Bueso Date: Fri, 6 Jun 2014 21:37:46 +0000 (-0700) Subject: ipc,msg: document volatile r_msg X-Git-Tag: v3.16-rc1~82^2~4^2~51 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=4bb6657dd3a55ab507502d82dbee9db276602669;p=linux.git ipc,msg: document volatile r_msg The need for volatile is not obvious, document it. Signed-off-by: Davidlohr Bueso Signed-off-by: Manfred Spraul Cc: Aswin Chandramouleeswaran Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- 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 #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; };