8eb52a1ee3
binder_alloc_print_pages() iterates over
alloc->pages[0..alloc->buffer_size-1] under alloc->mutex.
binder_alloc_mmap_handler() writes alloc->pages and alloc->buffer_size
without holding that lock, and even writes them before the last bailout
point.
Unfortunately we can't take the alloc->mutex in the ->mmap() handler
because mmap_sem can be taken while alloc->mutex is held.
So instead, we have to locklessly check whether the binder_alloc has been
fully initialized with binder_alloc_get_vma(), like in
binder_alloc_new_buf_locked().
Fixes:
|
||
---|---|---|
.. | ||
binder_alloc_selftest.c | ||
binder_alloc.c | ||
binder_alloc.h | ||
binder_internal.h | ||
binder_trace.h | ||
binder.c | ||
binderfs.c | ||
Kconfig | ||
Makefile |