Re: [PATCH -next 1/3] arm64: efi-header: Mark efi header as data

From: Chen Zhongjin
Date: Thu Sep 22 2022 - 10:26:06 EST


Hi,

On 2022/9/22 21:13, Ard Biesheuvel wrote:
On Thu, 22 Sept 2022 at 15:08, Chen Zhongjin <chenzhongjin@xxxxxxxxxx> wrote:
This file only contains a set of constants forming the efi header.

Make the constants part of data symbols by wrapping them with
SYM_DATA.

Signed-off-by: Julien Thierry <jthierry@xxxxxxxxxx>
Signed-off-by: Chen Zhongjin <chenzhongjin@xxxxxxxxxx>
Reviewed-by: Mark Brown <broonie@xxxxxxxxxx>
Why is this necessary? These are not emitted into a .text section, and
are not even covered by the kernel's mapping of memory. So the .L
prefixed labels are deliberate: it prevents the symbols from polluting
the symbol namespace with symbols pointing nowhere.

This is basically because when I'm developing objtool and these constants will disrupts

the instruction decoding so I just mark them as x86 did.


I tried to sent this patch set is because now the objtool patch set is growing huge so I

want to split some independent part. But now I found you are right that this are

meaningless. They are not even inside vmlinux. I'll discard them.


Sorry for bothering and thanks for your advise and patient!

Best,

Chen

---
arch/arm64/kernel/efi-header.S | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S
index 28d8a5dca5f1..3eacd27ab761 100644
--- a/arch/arm64/kernel/efi-header.S
+++ b/arch/arm64/kernel/efi-header.S
@@ -28,6 +28,7 @@
.macro __EFI_PE_HEADER
#ifdef CONFIG_EFI
.set .Lpe_header_offset, . - .L_head
+SYM_DATA_START_LOCAL(arm64_efi_header)
.long PE_MAGIC
.short IMAGE_FILE_MACHINE_ARM64 // Machine
.short .Lsection_count // NumberOfSections
@@ -160,6 +161,7 @@

.balign SEGMENT_ALIGN
.Lefi_header_end:
+SYM_DATA_END_LABEL(arm64_efi_header, SYM_L_LOCAL, efi_header_end)
#else
.set .Lpe_header_offset, 0x0
#endif
--
2.17.1