mm: add a field to store names for private anonymous memory

Userspace processes often have multiple allocators that each do
anonymous mmaps to get memory.  When examining memory usage of
individual processes or systems as a whole, it is useful to be
able to break down the various heaps that were allocated by
each layer and examine their size, RSS, and physical memory
usage.

This patch adds a user pointer to the shared union in
vm_area_struct that points to a null terminated string inside
the user process containing a name for the vma.  vmas that
point to the same address will be merged, but vmas that
point to equivalent strings at different addresses will
not be merged.

Userspace can set the name for a region of memory by calling
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned
long)name);
Setting the name to NULL clears it.

The names of named anonymous vmas are shown in /proc/pid/maps
as [anon:<name>] and in /proc/pid/smaps in a new "Name" field
that is only present for named vmas.  If the userspace pointer
is no longer valid all or part of the name will be replaced
with "<fault>".

The idea to store a userspace pointer to reduce the complexity
within mm (at the expense of the complexity of reading
/proc/pid/mem) came from Dave Hansen.  This results in no
runtime overhead in the mm subsystem other than comparing
the anon_name pointers when considering vma merging.  The pointer
is stored in a union with fieds that are only used on file-backed
mappings, so it does not increase memory usage.

Change-Id: Ie2ffc0967d4ffe7ee4c70781313c7b00cf7e3092
Signed-off-by: Colin Cross <ccross@android.com>

Conflicts:
	fs/proc/task_mmu.c
seq_file: finish removal of len.

Finish commit "seq_file: remove "%n" usage from seq_file users" after the new
function call introduced in "mm: add a field to store names for private
anonymous memory"

Change-Id: I99cc420fb4fcf2c9d74fc87da98023c19033d01d
leds: leds-pm8xxx: use snprintf for sysfs attribute show method

Sysfs attribute show method is passed a buffer of length PAGE_SIZE.
To prevent from overwriting this buffer, replace usage of sprintf()
with snprintf().

Change-Id: I0f12a2e1309940d0971dab1e7a29c9c03424a682
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>