Re: linux-next: manual merge of the rust tree with the char-misc tree
From: Stephen Rothwell
Date: Wed Nov 27 2024 - 20:51:27 EST
Hi all,
On Mon, 11 Nov 2024 17:34:59 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Today's linux-next merge of the rust tree got a conflict in:
>
> rust/macros/module.rs
>
> between commit:
>
> 7f15c46a57c3 ("rust: introduce `InPlaceModule`")
>
> from the char-misc tree and commit:
>
> d072acda4862 ("rust: use custom FFI integer types")
>
> from the rust 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.
>
> diff --cc rust/macros/module.rs
> index a03266a78cfb,e7a087b7e884..000000000000
> --- a/rust/macros/module.rs
> +++ b/rust/macros/module.rs
> @@@ -332,15 -330,21 +332,15 @@@ pub(crate) fn module(ts: TokenStream) -
> /// # Safety
> ///
> /// This function must only be called once.
> - unsafe fn __init() -> core::ffi::c_int {{
> + unsafe fn __init() -> kernel::ffi::c_int {{
> - match <{type_} as kernel::Module>::init(&super::super::THIS_MODULE) {{
> - Ok(m) => {{
> - // SAFETY: No data race, since `__MOD` can only be accessed by this
> - // module and there only `__init` and `__exit` access it. These
> - // functions are only called once and `__exit` cannot be called
> - // before or during `__init`.
> - unsafe {{
> - __MOD = Some(m);
> - }}
> - return 0;
> - }}
> - Err(e) => {{
> - return e.to_errno();
> - }}
> + let initer =
> + <{type_} as kernel::InPlaceModule>::init(&super::super::THIS_MODULE);
> + // SAFETY: No data race, since `__MOD` can only be accessed by this module
> + // and there only `__init` and `__exit` access it. These functions are only
> + // called once and `__exit` cannot be called before or during `__init`.
> + match unsafe {{ initer.__pinned_init(__MOD.as_mut_ptr()) }} {{
> + Ok(m) => 0,
> + Err(e) => e.to_errno(),
> }}
> }}
>
This is now conflict between the char-misc tree and Linus' tree.
--
Cheers,
Stephen Rothwell
Attachment:
pgpIl8zE1nPLP.pgp
Description: OpenPGP digital signature