diff mbox series

[v2,MIPS] Place __kernel_entry at the beginning of text section

Message ID 20241126173409.3728585-1-xur@google.com (mailing list archive)
State Handled Elsewhere
Headers show
Series [v2,MIPS] Place __kernel_entry at the beginning of text section | expand

Commit Message

Rong Xu Nov. 26, 2024, 5:34 p.m. UTC
Mark __kernel_entry as ".head.text" and place HEAD_TEXT before
TEXT_TEXT in the linker script. This ensures that __kernel_entry
will be placed at the beginning of text section.

Drop mips from scripts/head-object-list.txt.

Signed-off-by: Rong Xu <xur@google.com>
Reported-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Closes: https://lore.kernel.org/lkml/c6719149-8531-4174-824e-a3caf4bc6d0e@alliedtelesis.co.nz/T/
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
 arch/mips/kernel/head.S        | 1 +
 arch/mips/kernel/vmlinux.lds.S | 1 +
 scripts/head-object-list.txt   | 1 -
 3 files changed, 2 insertions(+), 1 deletion(-)


base-commit: 3596c721c4348b2a964e43f9296a0c01509ba927

Comments

Rong Xu Nov. 26, 2024, 5:39 p.m. UTC | #1
I forgot to add the changelog for this V2: The change was to move __HEAD
down based on Chris Packham's review.

-Rong

On Tue, Nov 26, 2024 at 9:34 AM Rong Xu <xur@google.com> wrote:
>
> Mark __kernel_entry as ".head.text" and place HEAD_TEXT before
> TEXT_TEXT in the linker script. This ensures that __kernel_entry
> will be placed at the beginning of text section.
>
> Drop mips from scripts/head-object-list.txt.
>
> Signed-off-by: Rong Xu <xur@google.com>
> Reported-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Closes: https://lore.kernel.org/lkml/c6719149-8531-4174-824e-a3caf4bc6d0e@alliedtelesis.co.nz/T/
> Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
>  arch/mips/kernel/head.S        | 1 +
>  arch/mips/kernel/vmlinux.lds.S | 1 +
>  scripts/head-object-list.txt   | 1 -
>  3 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
> index e90695b2b60e..c7528d96dd1a 100644
> --- a/arch/mips/kernel/head.S
> +++ b/arch/mips/kernel/head.S
> @@ -59,6 +59,7 @@
>  #endif
>         .endm
>
> +       __HEAD
>  #ifndef CONFIG_NO_EXCEPT_FILL
>         /*
>          * Reserved space for exception handlers.
> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
> index d575f945d422..c9c1ba85ac7b 100644
> --- a/arch/mips/kernel/vmlinux.lds.S
> +++ b/arch/mips/kernel/vmlinux.lds.S
> @@ -62,6 +62,7 @@ SECTIONS
>         _text = .;      /* Text and read-only data */
>         _stext = .;
>         .text : {
> +               HEAD_TEXT
>                 TEXT_TEXT
>                 SCHED_TEXT
>                 LOCK_TEXT
> diff --git a/scripts/head-object-list.txt b/scripts/head-object-list.txt
> index fd5d00bac447..f12b4a7b8406 100644
> --- a/scripts/head-object-list.txt
> +++ b/scripts/head-object-list.txt
> @@ -23,7 +23,6 @@ arch/m68k/coldfire/head.o
>  arch/m68k/kernel/head.o
>  arch/m68k/kernel/sun3-head.o
>  arch/microblaze/kernel/head.o
> -arch/mips/kernel/head.o
>  arch/nios2/kernel/head.o
>  arch/openrisc/kernel/head.o
>  arch/parisc/kernel/head.o
>
> base-commit: 3596c721c4348b2a964e43f9296a0c01509ba927
> --
> 2.47.0.338.g60cca15819-goog
>
Masahiro Yamada Nov. 27, 2024, 12:41 a.m. UTC | #2
On Wed, Nov 27, 2024 at 2:34 AM Rong Xu <xur@google.com> wrote:
>
> Mark __kernel_entry as ".head.text" and place HEAD_TEXT before
> TEXT_TEXT in the linker script. This ensures that __kernel_entry
> will be placed at the beginning of text section.
>
> Drop mips from scripts/head-object-list.txt.
>
> Signed-off-by: Rong Xu <xur@google.com>
> Reported-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Closes: https://lore.kernel.org/lkml/c6719149-8531-4174-824e-a3caf4bc6d0e@alliedtelesis.co.nz/T/
> Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>


Applied to linux-kbuild.
(Inserted before the offending commit)

Thanks!
diff mbox series

Patch

diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index e90695b2b60e..c7528d96dd1a 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -59,6 +59,7 @@ 
 #endif
 	.endm
 
+	__HEAD
 #ifndef CONFIG_NO_EXCEPT_FILL
 	/*
 	 * Reserved space for exception handlers.
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index d575f945d422..c9c1ba85ac7b 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -62,6 +62,7 @@  SECTIONS
 	_text = .;	/* Text and read-only data */
 	_stext = .;
 	.text : {
+		HEAD_TEXT
 		TEXT_TEXT
 		SCHED_TEXT
 		LOCK_TEXT
diff --git a/scripts/head-object-list.txt b/scripts/head-object-list.txt
index fd5d00bac447..f12b4a7b8406 100644
--- a/scripts/head-object-list.txt
+++ b/scripts/head-object-list.txt
@@ -23,7 +23,6 @@  arch/m68k/coldfire/head.o
 arch/m68k/kernel/head.o
 arch/m68k/kernel/sun3-head.o
 arch/microblaze/kernel/head.o
-arch/mips/kernel/head.o
 arch/nios2/kernel/head.o
 arch/openrisc/kernel/head.o
 arch/parisc/kernel/head.o