Re: linux-next: manual merge of the char-misc tree with the origin tree

From: Greg KH

Date: Tue Jul 14 2026 - 08:57:25 EST


On Tue, Jul 14, 2026 at 12:46:41PM +0000, Alice Ryhl wrote:
> On Mon, Jul 13, 2026 at 03:08:06PM +0100, Mark Brown wrote:
> > Hi all,
> >
> > Today's linux-next merge of the char-misc tree got conflicts in:
> >
> > drivers/android/binder/node.rs
> > drivers/android/binder/process.rs
> >
> > between commits:
> >
> > 6849cabfd30fb ("rust_binder: reject context manager self-transaction")
> > bc4a982889787 ("rust_binder: clear freeze listener on node removal")
> >
> > from the origin tree and commits:
> >
> > b9d17aa74ddd7 ("rust_binder: avoid allocating under node_refs for freeze listeners")
> > 521eae8326a18 ("rust_binder: avoid dropping NodeRef in update_ref() under lock")
> >
> > from the char-misc tree.
> >
> > I fixed it up (see below) and can carry the fix as necessary. This
> > is now fixed as far as linux-next is concerned, but any non trivial
> > conflicts should be mentioned to your upstream maintainer when your tree
> > is submitted for merging. You may also want to consider cooperating
> > with the maintainer of the conflicting tree to minimise any particularly
> > complex conflicts.
> >
> > I am really not at all confident in this merge.
>
> Thanks for giving it a shot! I have a slightly different resolution
> since some lines added by commit bc4a98288978 ("rust_binder: clear
> freeze listener on node removal") need to be kept.
>
> Please see below for the diff between my resolution and yours.
>
> Alice
>
>
>
> $ git diff linux-next/master drivers/android/binder
> diff --git a/drivers/android/binder/process.rs b/drivers/android/binder/process.rs
> index c5f745c85a02..0555c4bd503e 100644
> --- a/drivers/android/binder/process.rs
> +++ b/drivers/android/binder/process.rs
> @@ -954,6 +954,8 @@ pub(crate) fn update_ref(
> // increment references on itself.
> let _to_free_by_handle;
> let _to_free_by_node;
> + let _to_free_freeze_listener;
> + let _to_free_freeze_listener_cleanup;
> let mut refs = self.node_refs.lock();
> if let Some(info) = refs.by_handle.get_mut(&handle) {
> if info.node_ref().update(inc, strong) {
> @@ -971,6 +973,14 @@ pub(crate) fn update_ref(
> unsafe { info.node_ref2().node.remove_node_info(info) };
>
> let id = info.node_ref().node.global_id();
> +
> + if let Some(freeze) = *info.freeze() {
> + if let Some(fl) = refs.freeze_listeners.remove(&freeze) {
> + _to_free_freeze_listener_cleanup = fl.on_process_cleanup(&self);
> + _to_free_freeze_listener = fl;
> + }
> + }
> +
> _to_free_by_handle = refs.by_handle.remove_node(&handle);
> _to_free_by_node = refs.by_node.remove_node(&id);
> refs.handle_is_present.release_id(handle as usize);
>


That's a diff between the two, can someone provide me with the diff I
should make now to the tree when I merge these branches together?

thanks,

greg k-h