Ensure that the vma that the ashmem region is tied to
is valid before flushing and hold the mm semaphore so
that the vma does not get destroyed from under while
it's being flushed.
CRs-Fixed: 326685
Change-Id: I86320ffe9e6570e6ffa7dda68ab26be7aed86afd
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
The arguments to shrink functions have changed, update
ashmem_shrink to match.
Change-Id: Id279d22d761a2a7c4965c957960eef804d06cc07
Signed-off-by: Colin Cross <ccross@android.com>
Forward port of ashmem to 2.6.27.
Signed-off-by: Robert Love <rlove@google.com>
ashmem: Don't install fault handler for private mmaps.
Ashmem is used to create named private heaps. If this heap is backed
by a tmpfs file it will allocate two pages for every page touched.
In 2.6.27, the extra page would later be freed, but 2.6.29 does not
scan anonymous pages when running without swap so the memory is not
freed while the file is referenced. This change changes the behavior
of private ashmem mmaps to match /dev/zero instead tmpfs.
Signed-off-by: Arve Hjønnevåg <arve@android.com>
ashmem: Add common prefix to name reported in /proc/pid/maps
Signed-off-by: Arve Hjønnevåg <arve@android.com>
ashmem: don't require a page aligned size
This makes ashmem more similar to shmem and mmap, by
not requiring the specified size to be page aligned,
instead rounding it internally as needed.
Signed-off-by: Marco Nelissen <marcone@android.com>