mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
95e53ddd82
Currently we initialize the heap free_lock and free list size in ion_heap_init_deferred_free, which is only called when the ION_HEAP_FLAG_DEFER_FREE heap flag is given. However, the lock and size are used in the shrinker path as well as the deferred free path, and we can register a shrinker *without* enabling deferred freeing. So, if a heap provides a shrinker but *doesn't* set the DEFER_FREE flag we will use these parameters uninitialized (resulting in a spinlock bug and broken shrinker accounting). Fix these problems by initializing the free list parameters directly in ion_device_add_heap, which is always called no matter which heap features are being used. Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
ion | ||
trace | ||
uapi | ||
alarm-dev.c | ||
android_alarm.h | ||
ashmem.c | ||
ashmem.h | ||
Kconfig | ||
logger.c | ||
logger.h | ||
lowmemorykiller.c | ||
Makefile | ||
sw_sync.c | ||
sw_sync.h | ||
sync.c | ||
sync.h | ||
sync_debug.c | ||
timed_gpio.c | ||
timed_gpio.h | ||
timed_output.c | ||
timed_output.h | ||
TODO |