diff options
author | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2009-01-14 00:29:51 -0500 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2009-01-14 00:29:51 -0500 |
commit | cb7a97d01521797cad9f63e8478403c3e51fea49 (patch) | |
tree | 84cddf20369f82f10c1c3712e6cce20dd1b9d863 /ipc | |
parent | 0335cb76aa3fa913a2164bc9b669e5aef9d56fa3 (diff) | |
parent | a6525042bfdfcab128bd91fad264de10fd24a55e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/mqueue.c | 3 | ||||
-rw-r--r-- | ipc/shm.c | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index eddb6247a553..23fdb8492b8e 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -505,7 +505,8 @@ static void __do_notify(struct mqueue_inode_info *info) | |||
505 | sig_i.si_errno = 0; | 505 | sig_i.si_errno = 0; |
506 | sig_i.si_code = SI_MESGQ; | 506 | sig_i.si_code = SI_MESGQ; |
507 | sig_i.si_value = info->notify.sigev_value; | 507 | sig_i.si_value = info->notify.sigev_value; |
508 | sig_i.si_pid = task_tgid_vnr(current); | 508 | sig_i.si_pid = task_tgid_nr_ns(current, |
509 | ns_of_pid(info->notify_owner)); | ||
509 | sig_i.si_uid = current_uid(); | 510 | sig_i.si_uid = current_uid(); |
510 | 511 | ||
511 | kill_pid_info(info->notify.sigev_signo, | 512 | kill_pid_info(info->notify.sigev_signo, |
@@ -990,6 +990,7 @@ asmlinkage long sys_shmdt(char __user *shmaddr) | |||
990 | */ | 990 | */ |
991 | vma = find_vma(mm, addr); | 991 | vma = find_vma(mm, addr); |
992 | 992 | ||
993 | #ifdef CONFIG_MMU | ||
993 | while (vma) { | 994 | while (vma) { |
994 | next = vma->vm_next; | 995 | next = vma->vm_next; |
995 | 996 | ||
@@ -1034,6 +1035,17 @@ asmlinkage long sys_shmdt(char __user *shmaddr) | |||
1034 | vma = next; | 1035 | vma = next; |
1035 | } | 1036 | } |
1036 | 1037 | ||
1038 | #else /* CONFIG_MMU */ | ||
1039 | /* under NOMMU conditions, the exact address to be destroyed must be | ||
1040 | * given */ | ||
1041 | retval = -EINVAL; | ||
1042 | if (vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) { | ||
1043 | do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start); | ||
1044 | retval = 0; | ||
1045 | } | ||
1046 | |||
1047 | #endif | ||
1048 | |||
1037 | up_write(&mm->mmap_sem); | 1049 | up_write(&mm->mmap_sem); |
1038 | return retval; | 1050 | return retval; |
1039 | } | 1051 | } |