Subject: Re: linux-next: build failure after merge of the mm-nonmm-unstable tree

From: Finn Thain <[email-masked]>
Date: Sun, 21 Dec 2025 13:58:17 +1100 (AEDT)

On Thu, 18 Dec 2025, Stephen Rothwell wrote:

> After merging the mm-nonmm-unstable tree, today's linux-next build
> (x86_64 allmodconfig) failed like this:
> 
> x86_64-linux-gnu-ld: error: unplaced orphan section `__bug_table' from `arch/x86/boot/compressed/sev-handle-vc.o'
> 

I found that I could reproduce the same build failure after applying 
Peter's patch to v6.19-rc1. So it's not confined to linux-next. I used 
allnoconfig with CONFIG_LD_ORPHAN_WARN_LEVEL=error and 
CONFIG_AMD_MEM_ENCRYPT=y because allmodconfig takes forever to build.

The patch in question is this one:
https://lore.kernel.org/lkml/[email-masked]/

I may have found a solution for the problem, but I don't understand this 
code, so I've Cc'd Ard et al. I don't know whether the __bug_table section 
is relevant to sev-handle-vc.c. If that section is not desired, I propose 
to make this change to Peter's patch --

diff --git a/include/linux/instrumented.h b/include/linux/instrumented.h
index 402a999a0d6b..d39d89206561 100644
--- a/include/linux/instrumented.h
+++ b/include/linux/instrumented.h
@@ -68,7 +68,9 @@ static __always_inline void instrument_atomic_read(const volatile void *v, size_
 {
 	kasan_check_read(v, size);
 	kcsan_check_atomic_read(v, size);
+#ifndef __DISABLE_EXPORTS
 	WARN_ON_ONCE(IS_ENABLED(CONFIG_DEBUG_ATOMIC) && ((unsigned long)v & (size - 1)));
+#endif
 }
 
 /**
@@ -83,7 +85,9 @@ static __always_inline void instrument_atomic_write(const volatile void *v, size
 {
 	kasan_check_write(v, size);
 	kcsan_check_atomic_write(v, size);
+#ifndef __DISABLE_EXPORTS
 	WARN_ON_ONCE(IS_ENABLED(CONFIG_DEBUG_ATOMIC) && ((unsigned long)v & (size - 1)));
+#endif
 }
 
 /**
@@ -98,7 +102,9 @@ static __always_inline void instrument_atomic_read_write(const volatile void *v,
 {
 	kasan_check_write(v, size);
 	kcsan_check_atomic_read_write(v, size);
+#ifndef __DISABLE_EXPORTS
 	WARN_ON_ONCE(IS_ENABLED(CONFIG_DEBUG_ATOMIC) && ((unsigned long)v & (size - 1)));
+#endif
 }
 
 /**

The next patch in the series needs a similar change, which I've also 
pushed to my github repo at
https://github.com/fthain/linux/commits/atomic_t