mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
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 <[email protected]>
Signed-off-by: David Howells <[email protected]>
Cc: Greg Ungerer <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
5482415a5e
commit
33e5d76979
6 changed files with 30 additions and 34 deletions
|
|
@ -120,7 +120,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
|
|||
K(i.freeram-i.freehigh),
|
||||
#endif
|
||||
#ifndef CONFIG_MMU
|
||||
K((unsigned long) atomic_read(&mmap_pages_allocated)),
|
||||
K((unsigned long) atomic_long_read(&mmap_pages_allocated)),
|
||||
#endif
|
||||
K(i.totalswap),
|
||||
K(i.freeswap),
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue