Re: [PATCH] [MIPS] Place __kernel_entry at the beginning of text section

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 26/11/24 12:09, Rong Xu 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@xxxxxxxxxx>
Reported-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>

Works for me on my RTL9302C based board

Tested-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>

---
  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..6d5fc498c6f9 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -26,6 +26,7 @@
#include <kernel-entry-init.h> + __HEAD

I'm not and expert on any of this but... should this go below the setup_c0_status_* macros (just before the CONFIG_NO_EXCEPT_FILL) line? I don't think it makes any actual difference but as a reader it feels more logical that the __HEAD annotation is applying to the .fill and __kernel_entry.

  	/*
  	 * For the moment disable interrupts, mark the kernel mode and
  	 * set ST0_KX so that the CPU does not spit fire when using
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




[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux