diff --git a/drivers/android/binder/node.rs b/drivers/android/binder/node.rs index fefa723d13c4..8a87dc366aa9 100644 --- a/drivers/android/binder/node.rs +++ b/drivers/android/binder/node.rs @@ -1107,6 +1107,11 @@ fn do_work( // We're still holding the inner lock, so it cannot be aborted while we insert it into // the delivered list. process_inner.death_delivered(self.clone()); + binder_debug!( + DeathNotification, + "sending death notification, cookie {:016x}", + cookie + ); BR_DEAD_BINDER }; diff --git a/drivers/android/binder/process.rs b/drivers/android/binder/process.rs index 1d3a71292de0..eb2f08bec655 100644 --- a/drivers/android/binder/process.rs +++ b/drivers/android/binder/process.rs @@ -1253,6 +1253,10 @@ pub(crate) fn request_death( // Queue BR_ERROR if we can't allocate memory for the death notification. let death = UniqueArc::new_uninit(GFP_KERNEL).inspect_err(|_| { thread.push_return_work(BR_ERROR); + binder_debug!( + DeathNotification, + "BC_REQUEST_DEATH_NOTIFICATION failed due to memory allocation failure" + ); })?; let mut refs = self.node_refs.lock(); let Some(info) = refs.by_handle.get_mut(&handle) else { @@ -1296,6 +1300,11 @@ pub(crate) fn request_death( info.node_ref().node.add_death(death, &mut owner_inner); } } + binder_debug!( + DeathNotification, + "BC_REQUEST_DEATH_NOTIFICATION handle {handle} cookie {:016x}", + cookie + ); Ok(()) } @@ -1339,6 +1348,11 @@ pub(crate) fn clear_death(&self, reader: &mut UserSliceReader, thread: &Thread) } } + binder_debug!( + DeathNotification, + "BC_CLEAR_DEATH_NOTIFICATION handle {handle} cookie {:016x}", + cookie + ); Ok(()) }