Re: [PATCH] rust_binder: check context manager before creating node
From: Greg Kroah-Hartman
Date: Thu Jun 18 2026 - 06:30:21 EST
On Thu, Jun 18, 2026 at 03:50:30AM +0530, Keshav Verma wrote:
> Rust Binder currently creates the Binder node before checking
> whether a context manager is already registered. If a context manager already
> exists, set_manager_node() returns -EBUSY after node state has already been
> created.
Odd line-wrapping :(
>
> Add a check before creating the node to match the C Binder ordering for
> the common already registered case. Keep the final checks in set_manager_node()
> so races with another caller are still handled after node creation.
>
> Signed-off-by: Keshav Verma <iganschel@xxxxxxxxx>
What commit id does this "fix"?
> ---
> drivers/android/binder/context.rs | 20 ++++++++++++++++++++
> drivers/android/binder/process.rs | 1 +
> 2 files changed, 21 insertions(+)
>
> diff --git a/drivers/android/binder/context.rs b/drivers/android/binder/context.rs
> index ddddb66b3557..562fb339b31f 100644
> --- a/drivers/android/binder/context.rs
> +++ b/drivers/android/binder/context.rs
> @@ -4,6 +4,7 @@
>
> use kernel::{
> alloc::kvec::KVVec,
> + cred::Credential,
> error::code::*,
> prelude::*,
> security,
> @@ -107,6 +108,25 @@ pub(crate) fn deregister_process(self: &Arc<Self>, proc: &Arc<Process>) {
> }
> }
>
> + pub(crate) fn check_manager(&self, cred: &Credential) -> Result {
> + let manager = self.manager.lock();
> + if manager.node.is_some() {
> + pr_warn!("BINDER_SET_CONTEXT_MGR already set");
How can this be triggered?
thanks,
greg k-h