diff options
author | Chirayu Desai <cdesai@cyanogenmod.org> | 2013-06-29 12:19:32 +0530 |
---|---|---|
committer | Chirayu Desai <cdesai@cyanogenmod.org> | 2013-06-29 12:19:32 +0530 |
commit | 5dd3308e81c660adaf95ff9d1efd699d0ad94b41 (patch) | |
tree | 01d73a37cdc3573dadc9630a36f7b62df7a83ce8 /include | |
parent | a921f81fdcfec509021fcfe19dbca8650f95e7aa (diff) | |
parent | 863c94fa3948619d3e425f9a3c61e6baf72ee666 (diff) | |
download | kernel_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.h | 7 | ||||
-rw-r--r-- | include/linux/socket.h | 3 |
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, |