nommu: fix a number of issues with the per-MM VMA patch
Fix a number of issues with the per-MM VMA patch: (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on a NOMMU system with more than 2G pages. Makes no difference on a 32-bit system. (2) Report vma->vm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value, lest it overflow. (3) Move the allocation of the vm_area_struct slab back for fork.c. (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs. (5) Use BUG_ON() rather than if () BUG(). (6) Make the default validate_nommu_regions() a static inline rather than a #define. (7) Make free_page_series()'s objection to pages with a refcount != 1 more informative. (8) Adjust the __put_nommu_region() banner comment to indicate that the semaphore must be held for writing. (9) Limit the number of warnings about munmaps of non-mmapped regions. Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Howells <dhowells@redhat.com> Cc: Greg Ungerer <gerg@snapgear.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
5482415a5e
commit
33e5d76979
@@ -136,14 +136,14 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
|
||||
}
|
||||
|
||||
seq_printf(m,
|
||||
"%08lx-%08lx %c%c%c%c %08lx %02x:%02x %lu %n",
|
||||
"%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
|
||||
vma->vm_start,
|
||||
vma->vm_end,
|
||||
flags & VM_READ ? 'r' : '-',
|
||||
flags & VM_WRITE ? 'w' : '-',
|
||||
flags & VM_EXEC ? 'x' : '-',
|
||||
flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p',
|
||||
vma->vm_pgoff << PAGE_SHIFT,
|
||||
(unsigned long long) vma->vm_pgoff << PAGE_SHIFT,
|
||||
MAJOR(dev), MINOR(dev), ino, &len);
|
||||
|
||||
if (file) {
|
||||
|
Reference in New Issue
Block a user