staging: android: ashmem: rework locking to avoid deadlock

ashmem_mmap and range_alloc both hold the ashmem_mutex while
allocating, which may resulting in direct reclaim calling into
ashmem_shrink, which also takes ashmem_mutex, causing a deadlock.

To avoid this, rework the locking in ashmem.  Each ashmem_area
now has its own lock to protect its fields, and a global lock
protects the global LRU list of unpinned, unpurged ranges.

The shmem file cannot go away as long as the ashmem_area
structure exists, and range structs associated with the
ashmem_area are cleaned up before the shmem file is deleted,
the shmem file pointer can be copied into the range struct,
avoiding the need to lock the ashmem_areas when walking
the LRU list.

ashmem_shrink now only takes the ashmem_lru_list_lock, so
allocations must be avoided when holding ashmem_lru_list_lock.

range_shrink (which reduces the size of a range) and ashmem_shrink
(which marks entire ranges purged) got confusing, so rename
range_shrink to range_reduce.

ashmem_lru_list_lock is often not held while walking the unpinned
list for an ashmem_area, which means range->purged can change
state, and any changes made to the lru list must be safe
individually.

Change-Id: Ic4563b4dacdd650f14fa633847324f258dfa2049
Signed-off-by: Colin Cross <ccross@android.com>
cpufreq: interactive: restructure CPUFREQ_GOV_LIMITS

The cpufreq_interactive_timer gets cancelled and rescheduled
whenever the cpufreq_policy is changed. When the cpufreq policy is
changed at a rate faster than the sampling_rate of the interactive
governor, then the governor misses to change the target frequency
for long duration. The patch removes the need of cancelling the
timers when policy->min is changed.

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I7862f1c8022a3b98a890e7537f93d02010e86764

Conflicts:
	drivers/cpufreq/cpufreq_interactive.c
cpufreq: interactive: turn boost_pulse off on boost off

Change-Id: I36fe217fa047d68ea90e78b12c7db4537ea8010b
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>