Re: [PATCH] openrisc: place exception table at the head of vmlinux

From: Guenter Roeck
Date: Mon Dec 02 2024 - 15:33:20 EST


On Mon, Dec 02, 2024 at 03:28:22PM +0900, Masahiro Yamada wrote:
> Since commit 0043ecea2399 ("vmlinux.lds.h: Adjust symbol ordering in
> text output section"), the exception table in arch/openrisc/kernel/head.S
> is no longer positioned at the very beginning of the kernel image, which
> causes a boot failure.
>
> Currently, the exception table resides in the regular .text section.
> Previously, it was placed at the head by relying on the linker receiving
> arch/openrisc/kernel/head.o as the first object. However, this behavior
> has changed because sections like .text.{asan,unknown,unlikely,hot} now
> precede the regular .text section.
>
> The .head.text section is intended for entry points requiring special
> placement. However, in OpenRISC, this section has been misused: instead
> of the entry points, it contains boot code meant to be discarded after
> booting. This feature is typically handled by the .init.text section.
>
> This commit addresses the issue by replacing the current __HEAD marker
> with __INIT and re-annotating the entry points with __HEAD. Additionally,
> it adds __REF to entry.S to suppress the following modpost warning:
>
> WARNING: modpost: vmlinux: section mismatch in reference: _tng_kernel_start+0x70 (section: .text) -> _start (section: .init.text)
>
> Fixes: 0043ecea2399 ("vmlinux.lds.h: Adjust symbol ordering in text output section")
> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Closes: https://lore.kernel.org/all/5e032233-5b65-4ad5-ac50-d2eb6c00171c@xxxxxxxxxxxx/#t
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Guenter