diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 906b45d1e69f..a1985d161856 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -983,8 +983,9 @@ static void binder_wakeup_poll_threads_ilocked(struct binder_proc *proc, if (thread->looper & BINDER_LOOPER_STATE_POLL && binder_available_for_proc_work_ilocked(thread)) { #ifdef CONFIG_SCHED_WALT - if (sync && thread->task && thread->task->signal && - (thread->task->signal->oom_score_adj <= 0)) + if (thread->task && current->signal && + (current->signal->oom_score_adj == 0) && + (current->prio < DEFAULT_PRIO)) thread->task->wts.low_latency = true; #endif if (sync) @@ -1047,8 +1048,9 @@ static void binder_wakeup_thread_ilocked(struct binder_proc *proc, if (thread) { #ifdef CONFIG_SCHED_WALT - if (sync && thread->task && thread->task->signal && - (thread->task->signal->oom_score_adj <= 0)) + if (thread->task && current->signal && + (current->signal->oom_score_adj == 0) && + (current->prio < DEFAULT_PRIO)) thread->task->wts.low_latency = true; #endif if (sync) @@ -3613,12 +3615,6 @@ static void binder_transaction(struct binder_proc *proc, binder_pop_transaction_ilocked(target_thread, in_reply_to); binder_enqueue_thread_work_ilocked(target_thread, &t->work); binder_inner_proc_unlock(target_proc); -#ifdef CONFIG_SCHED_WALT - if (target_thread->task && target_thread->task->signal && - (target_thread->task->signal->oom_score_adj <= 0)) { - target_thread->task->wts.low_latency = true; - } -#endif wake_up_interruptible_sync(&target_thread->wait); trace_android_vh_binder_restore_priority(in_reply_to, current); binder_restore_priority(current, in_reply_to->saved_priority);