diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 17:00:58 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 17:00:58 -0500 |
| commit | c40f6f8bbc4cbd2902671aacd587400ddca62627 (patch) | |
| tree | a991e5521e10943f4457fb7f494e00aec75cc7df /ipc | |
| parent | 1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5 (diff) | |
| parent | cb6ff208076b5f434db1b8c983429269d719cef5 (diff) | |
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()
Diffstat (limited to 'ipc')
| -rw-r--r-- | ipc/shm.c | 12 |
1 files changed, 12 insertions, 0 deletions
| @@ -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 | } |
