linux/drivers/android
Todd Kjos ed29721e22 binder: use inner lock to sync work dq and node counts
For correct behavior we need to hold the inner lock when
dequeuing and processing node work in binder_thread_read.
We now hold the inner lock when we enter the switch statement
and release it after processing anything that might be
affected by other threads.

We also need to hold the inner lock to protect the node
weak/strong ref tracking fields as long as node->proc
is non-NULL (if it is NULL then we are guaranteed that
we don't have any node work queued).

This means that other functions that manipulate these fields
must hold the inner lock. Refactored these functions to use
the inner lock.

Signed-off-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-17 14:48:23 +02:00
..
binder_alloc.c binder: add more debug info when allocation fails. 2017-07-17 14:47:29 +02:00
binder_alloc.h binder: protect against two threads freeing buffer 2017-07-17 14:47:29 +02:00
binder_trace.h binder: refactor binder ref inc/dec for thread safety 2017-07-17 14:48:23 +02:00
binder.c binder: use inner lock to sync work dq and node counts 2017-07-17 14:48:23 +02:00
Kconfig binder: Add 'hwbinder' to the default devices 2017-03-17 15:10:49 +09:00
Makefile binder: move binder_alloc to separate file 2017-07-17 14:47:29 +02:00