|
@@ -1799,6 +1799,9 @@ static void binder_transaction(struct binder_proc *proc,
|
|
|
goto err_bad_object_type;
|
|
|
}
|
|
|
}
|
|
|
+ tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE;
|
|
|
+ list_add_tail(&tcomplete->entry, &thread->todo);
|
|
|
+
|
|
|
if (reply) {
|
|
|
BUG_ON(t->buffer->async_transaction != 0);
|
|
|
binder_pop_transaction(target_thread, in_reply_to);
|
|
@@ -1818,10 +1821,8 @@ static void binder_transaction(struct binder_proc *proc,
|
|
|
}
|
|
|
t->work.type = BINDER_WORK_TRANSACTION;
|
|
|
list_add_tail(&t->work.entry, target_list);
|
|
|
- tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE;
|
|
|
- list_add_tail(&tcomplete->entry, &thread->todo);
|
|
|
if (target_wait) {
|
|
|
- if (reply || !(t->flags & TF_ONE_WAY))
|
|
|
+ if (reply || !(tr->flags & TF_ONE_WAY))
|
|
|
wake_up_interruptible_sync(target_wait);
|
|
|
else
|
|
|
wake_up_interruptible(target_wait);
|