Subject: Re: linux-next: manual merge of the rust tree with the driver-core tree

From: Greg KH <[email-masked]>
Date: Tue, 1 Apr 2025 08:42:57 +0100

On Tue, Apr 01, 2025 at 02:21:59PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> On Fri, 21 Mar 2025 18:56:30 +1100 Stephen Rothwell <[email-masked]> wrote:
> >
> > Today's linux-next merge of the rust tree got a semantic conflict in:
> > 
> >   samples/rust/rust_dma.rs
> > 
> > between commit:
> > 
> >   7b948a2af6b5 ("rust: pci: fix unrestricted &mut pci::Device")
> > 
> > from the driver-core tree and commit:
> > 
> >   9901addae63b ("samples: rust: add Rust dma test sample driver")
> > 
> > from the rust tree.
> > 
> > I fixed it up (I applied the following supplied resolution, thanks Danilo)
> > 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.
> > 
> > From: Stephen Rothwell <[email-masked]>
> > Date: Fri, 21 Mar 2025 18:21:27 +1100
> > Subject: [PATCH] fix up for "samples: rust: add Rust dma test sample driver"
> > 
> > interacting with commit
> > 
> >   7b948a2af6b5 ("rust: pci: fix unrestricted &mut pci::Device")
> > 
> > from the driver-core tree.
> > 
> > Signed-off-by: Stephen Rothwell <[email-masked]>
> > ---
> >  samples/rust/rust_dma.rs | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/samples/rust/rust_dma.rs b/samples/rust/rust_dma.rs
> > index 908acd34b8db..874c2c964afa 100644
> > --- a/samples/rust/rust_dma.rs
> > +++ b/samples/rust/rust_dma.rs
> > @@ -4,10 +4,10 @@
> >  //!
> >  //! To make this driver probe, QEMU must be run with `-device pci-testdev`.
> >  
> > -use kernel::{bindings, dma::CoherentAllocation, pci, prelude::*};
> > +use kernel::{bindings, device::Core, dma::CoherentAllocation, pci, prelude::*, types::ARef};
> >  
> >  struct DmaSampleDriver {
> > -    pdev: pci::Device,
> > +    pdev: ARef<pci::Device>,
> >      ca: CoherentAllocation<MyStruct>,
> >  }
> >  
> > @@ -48,7 +48,7 @@ impl pci::Driver for DmaSampleDriver {
> >      type IdInfo = ();
> >      const ID_TABLE: pci::IdTable<Self::IdInfo> = &PCI_TABLE;
> >  
> > -    fn probe(pdev: &mut pci::Device, _info: &Self::IdInfo) -> Result<Pin<KBox<Self>>> {
> > +    fn probe(pdev: &pci::Device<Core>, _info: &Self::IdInfo) -> Result<Pin<KBox<Self>>> {
> >          dev_info!(pdev.as_ref(), "Probe DMA test driver.\n");
> >  
> >          let ca: CoherentAllocation<MyStruct> =
> > @@ -64,7 +64,7 @@ fn probe(pdev: &mut pci::Device, _info: &Self::IdInfo) -> Result<Pin<KBox<Self>>
> >  
> >          let drvdata = KBox::new(
> >              Self {
> > -                pdev: pdev.clone(),
> > +                pdev: pdev.into(),
> >                  ca,
> >              },
> >              GFP_KERNEL,
> > -- 
> > 2.45.2
> 
> This is now a conflict between the driver-core tree and Linus' tree.

Thanks, I've sent the pull request to Linus right after the rust one,
and warned him about this conflict.

greg k-h