Re: linux-next: build failure after merge of the mm-nonmm-unstable tree
From: Finn Thain
Date: Sat Dec 20 2025 - 21:57:14 EST
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/0c18fd08ef19497768070783da28086e01d11a00.1765866665.git.fthain@xxxxxxxxxxxxxx/
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