diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 21c8e3c48a0c..be5c2c8cb185 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -2797,7 +2797,11 @@ static bool binder_proc_transaction(struct binder_transaction *t, if (oneway) { BUG_ON(thread); if (node->has_async_transaction) { - pending_async = true; + if (!strcmp(proc->context->name, "hwbinder")) { + // Halium: possible libgbinder bug workaround + } else { + pending_async = true; + } } else { node->has_async_transaction = true; } @@ -3659,7 +3663,8 @@ static int binder_thread_write(struct binder_proc *proc, buf_node = buffer->target_node; binder_node_inner_lock(buf_node); - BUG_ON(!buf_node->has_async_transaction); + // Halium: possible libgbinder bug workaround + /*BUG_ON(!buf_node->has_async_transaction);*/ BUG_ON(buf_node->proc != proc); w = binder_dequeue_work_head_ilocked( &buf_node->async_todo);