Subject: Re: linux-next: manual merge of the kvm-x86 tree with the tip tree

From: Nathan Chancellor <[email-masked]>
Date: Thu, 5 Mar 2026 12:24:01 -0700

On Wed, Mar 04, 2026 at 03:10:14PM -0800, Sean Christopherson wrote:
> On Wed, Mar 04, 2026, Mark Brown wrote:
> > Hi all,
> > 
> > Today's linux-next merge of the kvm-x86 tree got a conflict in:
> > 
> >   arch/x86/virt/vmx/tdx/tdx_global_metadata.c
> > 
> > between commit:
> > 
> >   311214bf1df4b ("x86/virt/tdx: Retrieve TDX module version")
> > 
> > from the tip tree and commit:
> > 
> >   75b6c694eaed4 ("x86/virt/tdx: Tag a pile of functions as __init, and globals as __ro_after_init")
> > 
> > from the kvm-x86 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 arch/x86/virt/vmx/tdx/tdx_global_metadata.c
> > index 4c9917a9c2c39,360963bc9328f..0000000000000
> > --- a/arch/x86/virt/vmx/tdx/tdx_global_metadata.c
> > +++ b/arch/x86/virt/vmx/tdx/tdx_global_metadata.c
> > @@@ -7,22 -7,7 +7,22 @@@
> >    * Include this file to other C file instead.
> >    */
> >   
> >  +static int get_tdx_sys_info_version(struct tdx_sys_info_version *sysinfo_version)
> 
> Functionally this is a-ok, but we should remember to mention to Linus (and Paolo)
> that this can be marked __init when the two branches get smushed together.

s/can be/need to be/, I am seeing warnings from modpost as a result of
get_tdx_sys_info_version() lacking __init when building with clang:

  $ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 mrproper allmodconfig all
  ...
  WARNING: modpost: vmlinux: section mismatch in reference: get_tdx_sys_info_version+0x3e (section: .text.unlikely.) -> read_sys_metadata_field (section: .init.text)
  WARNING: modpost: vmlinux: section mismatch in reference: get_tdx_sys_info_version+0x90 (section: .text.unlikely.) -> read_sys_metadata_field (section: .init.text)
  WARNING: modpost: vmlinux: section mismatch in reference: get_tdx_sys_info_version+0xc0 (section: .text.unlikely.) -> read_sys_metadata_field (section: .init.text)

This obviously clears it. Mark, can that be applied to whichever merge
happens second?

Cheers,
Nathan

diff --git a/arch/x86/virt/vmx/tdx/tdx_global_metadata.c b/arch/x86/virt/vmx/tdx/tdx_global_metadata.c
index e854aa0ca649..c7db393a9cfb 100644
--- a/arch/x86/virt/vmx/tdx/tdx_global_metadata.c
+++ b/arch/x86/virt/vmx/tdx/tdx_global_metadata.c
@@ -7,7 +7,7 @@
  * Include this file to other C file instead.
  */
 
-static int get_tdx_sys_info_version(struct tdx_sys_info_version *sysinfo_version)
+static __init int get_tdx_sys_info_version(struct tdx_sys_info_version *sysinfo_version)
 {
 	int ret = 0;
 	u64 val;