Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu
* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu: NOMMU: Support XIP on initramfs NOMMU: Teach kobjsize() about VMA regions. FLAT: Don't attempt to expand the userspace stack to fill the space allocated FDPIC: Don't attempt to expand the userspace stack to fill the space allocated NOMMU: Improve procfs output using per-MM VMAs NOMMU: Make mmap allocation page trimming behaviour configurable. NOMMU: Make VMAs per MM as for MMU-mode linux NOMMU: Delete askedalloc and realalloc variables NOMMU: Rename ARM's struct vm_region NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()
This commit is contained in:
12
ipc/shm.c
12
ipc/shm.c
@@ -990,6 +990,7 @@ asmlinkage long sys_shmdt(char __user *shmaddr)
|
||||
*/
|
||||
vma = find_vma(mm, addr);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
while (vma) {
|
||||
next = vma->vm_next;
|
||||
|
||||
@@ -1034,6 +1035,17 @@ asmlinkage long sys_shmdt(char __user *shmaddr)
|
||||
vma = next;
|
||||
}
|
||||
|
||||
#else /* CONFIG_MMU */
|
||||
/* under NOMMU conditions, the exact address to be destroyed must be
|
||||
* given */
|
||||
retval = -EINVAL;
|
||||
if (vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) {
|
||||
do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start);
|
||||
retval = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
up_write(&mm->mmap_sem);
|
||||
return retval;
|
||||
}
|
||||
|
Reference in New Issue
Block a user