2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00
linux-next/drivers/android
Todd Kjos 7a4408c6bd binder: make sure accesses to proc/thread are safe
binder_thread and binder_proc may be accessed by other
threads when processing transaction. Therefore they
must be prevented from being freed while a transaction
is in progress that references them.

This is done by introducing a temporary reference
counter for threads and procs that indicates that the
object is in use and must not be freed. binder_thread_dec_tmpref()
and binder_proc_dec_tmpref() are used to decrement
the temporary reference.

It is safe to free a binder_thread if there
is no reference and it has been released
(indicated by thread->is_dead).

It is safe to free a binder_proc if it has no
remaining threads and no reference.

A spinlock is added to the binder_transaction
to safely access and set references for t->from
and for debug code to safely access t->to_thread
and t->to_proc.

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: separate out binder_alloc functions 2017-07-17 14:47:28 +02:00
binder.c binder: make sure accesses to proc/thread are safe 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