[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240306085622.87248-3-cuiyunhui@bytedance.com>
Date: Wed, 6 Mar 2024 16:56:22 +0800
From: Yunhui Cui <cuiyunhui@...edance.com>
To: paul.walmsley@...ive.com,
palmer@...belt.com,
aou@...s.berkeley.edu,
ardb@...nel.org,
cuiyunhui@...edance.com,
xuzhipeng.1973@...edance.com,
alexghiti@...osinc.com,
samitolvanen@...gle.com,
bp@...en8.de,
xiao.w.wang@...el.com,
jan.kiszka@...mens.com,
kirill.shutemov@...ux.intel.com,
nathan@...nel.org,
linux-riscv@...ts.infradead.org,
linux-kernel@...r.kernel.org,
linux-efi@...r.kernel.org
Subject: [PATCH 3/3] efistub: fix missed the initialization of gp
Compared with gcc version 12, gcc version 13 uses the gp
register for compilation optimization, but the efistub module
does not initialize gp.
Signed-off-by: Yunhui Cui <cuiyunhui@...edance.com>
Co-Developed-by: Zhipeng Xu <xuzhipeng.1973@...edance.com>
---
arch/riscv/kernel/efi-header.S | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/kernel/efi-header.S b/arch/riscv/kernel/efi-header.S
index 515b2dfbca75..fa17c08c092a 100644
--- a/arch/riscv/kernel/efi-header.S
+++ b/arch/riscv/kernel/efi-header.S
@@ -40,7 +40,7 @@ optional_header:
.long __pecoff_data_virt_end - __pecoff_text_end // SizeOfInitializedData
#endif
.long 0 // SizeOfUninitializedData
- .long __efistub_efi_pe_entry - _start // AddressOfEntryPoint
+ .long _efistub_entry - _start // AddressOfEntryPoint
.long efi_header_end - _start // BaseOfCode
#ifdef CONFIG_32BIT
.long __pecoff_text_end - _start // BaseOfData
@@ -121,4 +121,13 @@ section_table:
.balign 0x1000
efi_header_end:
+
+ .global _efistub_entry
+_efistub_entry:
+ /* Reload the global pointer */
+ load_global_pointer
+
+ call __efistub_efi_pe_entry
+ ret
+
.endm
--
2.20.1
Powered by blists - more mailing lists