aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/mqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r--ipc/mqueue.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index cb0cd3cf3b5a..0acf245f441d 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -23,6 +23,7 @@
23#include <linux/skbuff.h> 23#include <linux/skbuff.h>
24#include <linux/netlink.h> 24#include <linux/netlink.h>
25#include <linux/syscalls.h> 25#include <linux/syscalls.h>
26#include <linux/signal.h>
26#include <net/sock.h> 27#include <net/sock.h>
27#include "util.h" 28#include "util.h"
28 29
@@ -767,7 +768,7 @@ static inline void pipelined_send(struct mqueue_inode_info *info,
767 list_del(&receiver->list); 768 list_del(&receiver->list);
768 receiver->state = STATE_PENDING; 769 receiver->state = STATE_PENDING;
769 wake_up_process(receiver->task); 770 wake_up_process(receiver->task);
770 wmb(); 771 smp_wmb();
771 receiver->state = STATE_READY; 772 receiver->state = STATE_READY;
772} 773}
773 774
@@ -786,7 +787,7 @@ static inline void pipelined_receive(struct mqueue_inode_info *info)
786 list_del(&sender->list); 787 list_del(&sender->list);
787 sender->state = STATE_PENDING; 788 sender->state = STATE_PENDING;
788 wake_up_process(sender->task); 789 wake_up_process(sender->task);
789 wmb(); 790 smp_wmb();
790 sender->state = STATE_READY; 791 sender->state = STATE_READY;
791} 792}
792 793
@@ -976,8 +977,7 @@ asmlinkage long sys_mq_notify(mqd_t mqdes,
976 notification.sigev_notify != SIGEV_THREAD)) 977 notification.sigev_notify != SIGEV_THREAD))
977 return -EINVAL; 978 return -EINVAL;
978 if (notification.sigev_notify == SIGEV_SIGNAL && 979 if (notification.sigev_notify == SIGEV_SIGNAL &&
979 (notification.sigev_signo < 0 || 980 !valid_signal(notification.sigev_signo)) {
980 notification.sigev_signo > _NSIG)) {
981 return -EINVAL; 981 return -EINVAL;
982 } 982 }
983 if (notification.sigev_notify == SIGEV_THREAD) { 983 if (notification.sigev_notify == SIGEV_THREAD) {