diff options
author | Dan Williams <dan.j.williams@intel.com> | 2024-02-20 22:57:35 -0800 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2024-02-20 22:57:35 -0800 |
commit | 40de53fd002c6ba087a623722915e8006ed68a02 (patch) | |
tree | ec733b0a05924f98855728cd24de2ea38e1223b8 /drivers/android/binder.c | |
parent | 0cab687205986491302cd2e440ef1d253031c221 (diff) | |
parent | f3e6b3ae9cfc128af11b665c6ef4022ba2683778 (diff) | |
download | linux-stable-40de53fd002c6ba087a623722915e8006ed68a02.tar.gz linux-stable-40de53fd002c6ba087a623722915e8006ed68a02.tar.bz2 linux-stable-40de53fd002c6ba087a623722915e8006ed68a02.zip |
Merge branch 'for-6.8/cxl-cper' into for-6.8/cxl
Pick up CXL CPER notification removal for v6.8-rc6, to return in a later
merge window.
Diffstat (limited to 'drivers/android/binder.c')
-rw-r--r-- | drivers/android/binder.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 8dd23b19e997..eca24f41556d 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -478,6 +478,16 @@ binder_enqueue_thread_work_ilocked(struct binder_thread *thread, { WARN_ON(!list_empty(&thread->waiting_thread_node)); binder_enqueue_work_ilocked(work, &thread->todo); + + /* (e)poll-based threads require an explicit wakeup signal when + * queuing their own work; they rely on these events to consume + * messages without I/O block. Without it, threads risk waiting + * indefinitely without handling the work. + */ + if (thread->looper & BINDER_LOOPER_STATE_POLL && + thread->pid == current->pid && !thread->process_todo) + wake_up_interruptible_sync(&thread->wait); + thread->process_todo = true; } |