diff options
| author | James Bottomley <jejb@titanic.(none)> | 2005-05-20 15:27:44 -0500 |
|---|---|---|
| committer | James Bottomley <jejb@titanic.(none)> | 2005-05-20 15:27:44 -0500 |
| commit | ad34ea2cc3845ef4dcd7d12fb0fa8484734bd672 (patch) | |
| tree | ad434400f5ecaa33b433c8f830e40792d8d6c05c /ipc | |
| parent | 90356ac3194bf91a441a5f9c3067af386ef62462 (diff) | |
| parent | 88d7bd8cb9eb8d64bf7997600b0d64f7834047c5 (diff) | |
| download | cachepc-linux-ad34ea2cc3845ef4dcd7d12fb0fa8484734bd672.tar.gz cachepc-linux-ad34ea2cc3845ef4dcd7d12fb0fa8484734bd672.zip | |
merge by hand - fix up rejections in Documentation/DocBook/Makefile
Diffstat (limited to 'ipc')
| -rw-r--r-- | ipc/mqueue.c | 8 | ||||
| -rw-r--r-- | ipc/shm.c | 14 |
2 files changed, 18 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 @@ #include <linux/skbuff.h> #include <linux/netlink.h> #include <linux/syscalls.h> +#include <linux/signal.h> #include <net/sock.h> #include "util.h" @@ -767,7 +768,7 @@ static inline void pipelined_send(struct mqueue_inode_info *info, list_del(&receiver->list); receiver->state = STATE_PENDING; wake_up_process(receiver->task); - wmb(); + smp_wmb(); receiver->state = STATE_READY; } @@ -786,7 +787,7 @@ static inline void pipelined_receive(struct mqueue_inode_info *info) list_del(&sender->list); sender->state = STATE_PENDING; wake_up_process(sender->task); - wmb(); + smp_wmb(); sender->state = STATE_READY; } @@ -976,8 +977,7 @@ asmlinkage long sys_mq_notify(mqd_t mqdes, notification.sigev_notify != SIGEV_THREAD)) return -EINVAL; if (notification.sigev_notify == SIGEV_SIGNAL && - (notification.sigev_signo < 0 || - notification.sigev_signo > _NSIG)) { + !valid_signal(notification.sigev_signo)) { return -EINVAL; } if (notification.sigev_notify == SIGEV_THREAD) { diff --git a/ipc/shm.c b/ipc/shm.c index 06cd5c91056f..cce022435dbc 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -28,6 +28,8 @@ #include <linux/security.h> #include <linux/syscalls.h> #include <linux/audit.h> +#include <linux/ptrace.h> + #include <asm/uaccess.h> #include "util.h" @@ -771,6 +773,18 @@ out: return err; } +asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg) +{ + unsigned long ret; + long err; + + err = do_shmat(shmid, shmaddr, shmflg, &ret); + if (err) + return err; + force_successful_syscall_return(); + return (long)ret; +} + /* * detach and kill segment if marked destroyed. * The work is done in shm_close. |
