[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMj1kXFjttKG3JF=aw9KgRup-ge-WeUnncfEfTZmUVSfi4F6fg@mail.gmail.com>
Date: Fri, 2 Jan 2026 08:29:42 +0100
From: Ard Biesheuvel <ardb@...nel.org>
To: Sasha Levin <sashal@...nel.org>
Cc: Finn Thain <fthain@...ux-m68k.org>, Peter Zijlstra <peterz@...radead.org>,
Andrew Morton <akpm@...ux-foundation.org>, Will Deacon <will@...nel.org>,
Arnd Bergmann <arnd@...db.de>, Stephen Rothwell <sfr@...b.auug.org.au>, x86@...nel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>
Subject: Re: linux-next: build failure after merge of the mm-nonmm-unstable tree
On Fri, 26 Dec 2025 at 17:45, Sasha Levin <sashal@...nel.org> wrote:
>
> On Sun, Dec 21, 2025 at 01:58:17PM +1100, Finn Thain wrote:
> >
> >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@linux-m68k.org/
> >
> >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 --
>
> I think that the issue here is that we're trying to use WARN in the early boot
> context. We should probably add CONFIG_DEBUG_ATOMIC to the list of configs we
> disable for that:
>
> diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
> index 4f86c5903e03..bb36dcef7d08 100644
> --- a/arch/x86/boot/compressed/misc.h
> +++ b/arch/x86/boot/compressed/misc.h
> @@ -14,6 +14,7 @@
> #undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> #undef CONFIG_KASAN
> #undef CONFIG_KASAN_GENERIC
> +#undef CONFIG_DEBUG_ATOMIC
>
In spite of the prior art, #undef'ing CONFIG_ options is the worst
possible way of dealing with this, as it could result in
inconsistencies (as Finn already found). And it is definitely not
something that belongs in generic code - the x86 decompressor is
somewhat of a lost cause at this point, I'm afraid.
In this case, I'd prefer it if we added a helper, rather than
duplicating the same check 3 times. But in this check, testing for
__DISABLE_EXPORTS is perfectly reasonable: it is already used in this
manner across architectures.
Powered by blists - more mailing lists