aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Coenen <maco@android.com>2017-08-14 23:11:29 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-08-14 23:11:29 +0000
commit681299c466ef194e9a64c09bb2adf3dc99514d42 (patch)
treefb3c89488b3b6cd16957c55cc47315d6c9af0eec
parent8a0093840dee3c36e4487b9617683495761eab2c (diff)
parentf2278c7ea2133ede0c173f7f3817ae50638614d2 (diff)
downloadv4.4-681299c466ef194e9a64c09bb2adf3dc99514d42.tar.gz
ANDROID: binder: don't queue async transactions to thread. am: 6f227409a1
am: f2278c7ea2 Change-Id: I540e98546c737b89733a51e84da12e9fb8d2c0b6
-rw-r--r--drivers/android/binder.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 061a7258779e..bfdd52ea0d1c 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -3522,11 +3522,13 @@ static int binder_thread_write(struct binder_proc *proc,
BUG_ON(buf_node->proc != proc);
w = binder_dequeue_work_head_ilocked(
&buf_node->async_todo);
- if (!w)
+ if (!w) {
buf_node->has_async_transaction = 0;
- else
+ } else {
binder_enqueue_work_ilocked(
- w, &thread->todo);
+ w, &proc->todo);
+ binder_wakeup_proc_ilocked(proc);
+ }
binder_node_inner_unlock(buf_node);
}
trace_binder_transaction_buffer_release(buffer);