Patch "ANDROID: binder: synchronize_rcu() when using POLLFREE." has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ANDROID: binder: synchronize_rcu() when using POLLFREE.
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
android-binder-synchronize_rcu-when-using-pollfree.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5eeb2ca02a2f6084fc57ae5c244a38baab07033aMon Sep 17 00:00:00 2001
From: Martijn Coenen <[email protected]>
Date: Fri, 16 Feb 2018 09:47:15 +0100
Subject: ANDROID: binder: synchronize_rcu() when using POLLFREE.
From: Martijn Coenen <[email protected]>
commit 5eeb2ca02a2f6084fc57ae5c244a38baab07033a upstream.
To prevent races with ep_remove_waitqueue() removing the waitqueue at the same time.
--- drivers/android/binder.c | 9 +++++++++ 1 file changed, 9 insertions(+)
drivers/android/binder.c +9 -0
@@ -4322,6 +4322,15 @@ static int binder_thread_release(structbinder_inner_proc_unlock (thread->proc); +/* +* This is needed to avoid races between wake_up_poll() above and +* and ep_remove_waitqueue() called for other reasons (eg the epoll file +* descriptor being closed); ep_remove_waitqueue() holds an RCU read +* lock, so we can be sure it's done after calling synchronize_rcu(). +*/ +if (thread->looper &BINDER_LOOPER_STATE_POLL ) +synchronize_rcu (); +if (send_reply)binder_send_failed_reply (send_reply,BR_DEAD_REPLY );binder_release_work (proc, &thread->todo);
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/android-binder-synchronize_rcu-when-using-pollfree.patch