Loading drivers/android/binder.c +11 −4 Original line number Diff line number Diff line Loading @@ -832,7 +832,7 @@ binder_enqueue_work_ilocked(struct binder_work *work, } /** * binder_enqueue_thread_work_ilocked_nowake() - Add thread work * binder_enqueue_deferred_thread_work_ilocked() - Add deferred thread work * @thread: thread to queue work to * @work: struct binder_work to add to list * Loading @@ -843,7 +843,7 @@ binder_enqueue_work_ilocked(struct binder_work *work, * Requires the proc->inner_lock to be held. */ static void binder_enqueue_thread_work_ilocked_nowake(struct binder_thread *thread, binder_enqueue_deferred_thread_work_ilocked(struct binder_thread *thread, struct binder_work *work) { binder_enqueue_work_ilocked(work, &thread->todo); Loading Loading @@ -3347,7 +3347,14 @@ static void binder_transaction(struct binder_proc *proc, } else if (!(t->flags & TF_ONE_WAY)) { BUG_ON(t->buffer->async_transaction != 0); binder_inner_proc_lock(proc); binder_enqueue_thread_work_ilocked_nowake(thread, tcomplete); /* * Defer the TRANSACTION_COMPLETE, so we don't return to * userspace immediately; this allows the target process to * immediately start processing this transaction, reducing * latency. We will then return the TRANSACTION_COMPLETE when * the target replies (or there is an error). */ binder_enqueue_deferred_thread_work_ilocked(thread, tcomplete); t->need_reply = 1; t->from_parent = thread->transaction_stack; thread->transaction_stack = t; Loading Loading
drivers/android/binder.c +11 −4 Original line number Diff line number Diff line Loading @@ -832,7 +832,7 @@ binder_enqueue_work_ilocked(struct binder_work *work, } /** * binder_enqueue_thread_work_ilocked_nowake() - Add thread work * binder_enqueue_deferred_thread_work_ilocked() - Add deferred thread work * @thread: thread to queue work to * @work: struct binder_work to add to list * Loading @@ -843,7 +843,7 @@ binder_enqueue_work_ilocked(struct binder_work *work, * Requires the proc->inner_lock to be held. */ static void binder_enqueue_thread_work_ilocked_nowake(struct binder_thread *thread, binder_enqueue_deferred_thread_work_ilocked(struct binder_thread *thread, struct binder_work *work) { binder_enqueue_work_ilocked(work, &thread->todo); Loading Loading @@ -3347,7 +3347,14 @@ static void binder_transaction(struct binder_proc *proc, } else if (!(t->flags & TF_ONE_WAY)) { BUG_ON(t->buffer->async_transaction != 0); binder_inner_proc_lock(proc); binder_enqueue_thread_work_ilocked_nowake(thread, tcomplete); /* * Defer the TRANSACTION_COMPLETE, so we don't return to * userspace immediately; this allows the target process to * immediately start processing this transaction, reducing * latency. We will then return the TRANSACTION_COMPLETE when * the target replies (or there is an error). */ binder_enqueue_deferred_thread_work_ilocked(thread, tcomplete); t->need_reply = 1; t->from_parent = thread->transaction_stack; thread->transaction_stack = t; Loading