aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChirayu Desai <cdesai@cyanogenmod.org>2013-06-29 12:19:32 +0530
committerChirayu Desai <cdesai@cyanogenmod.org>2013-06-29 12:19:32 +0530
commit5dd3308e81c660adaf95ff9d1efd699d0ad94b41 (patch)
tree01d73a37cdc3573dadc9630a36f7b62df7a83ce8 /include
parenta921f81fdcfec509021fcfe19dbca8650f95e7aa (diff)
parent863c94fa3948619d3e425f9a3c61e6baf72ee666 (diff)
downloadkernel_samsung_aries-5dd3308e81c660adaf95ff9d1efd699d0ad94b41.zip
kernel_samsung_aries-5dd3308e81c660adaf95ff9d1efd699d0ad94b41.tar.gz
kernel_samsung_aries-5dd3308e81c660adaf95ff9d1efd699d0ad94b41.tar.bz2
Merge tag 'v3.0.84' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into HEAD
This is the 3.0.84 stable release
Diffstat (limited to 'include')
-rw-r--r--include/linux/rculist_nulls.h7
-rw-r--r--include/linux/socket.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h
index 2ae1371..1c33dd7 100644
--- a/include/linux/rculist_nulls.h
+++ b/include/linux/rculist_nulls.h
@@ -105,9 +105,14 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n,
* @head: the head for your list.
* @member: the name of the hlist_nulls_node within the struct.
*
+ * The barrier() is needed to make sure compiler doesn't cache first element [1],
+ * as this loop can be restarted [2]
+ * [1] Documentation/atomic_ops.txt around line 114
+ * [2] Documentation/RCU/rculist_nulls.txt around line 146
*/
#define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \
- for (pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \
+ for (({barrier();}), \
+ pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \
(!is_a_nulls(pos)) && \
({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \
pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos)))
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 2417952..50b2530 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -332,6 +332,9 @@ extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
struct timespec;
+/* The __sys_...msg variants allow MSG_CMSG_COMPAT */
+extern long __sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
+extern long __sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
unsigned int flags, struct timespec *timeout);
extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,