diff mbox series

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

Message ID 20220922130452.233323-2-chenzhongjin@huawei.com (mailing list archive)
State Not Applicable
Delegated to: Herbert Xu
Headers show
Series arm64: Mark constants in .S files as data | expand

Commit Message

Chen Zhongjin Sept. 22, 2022, 1:04 p.m. UTC
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@redhat.com>
Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
---
 arch/arm64/kernel/efi-header.S | 2 ++
 1 file changed, 2 insertions(+)

Comments

Ard Biesheuvel Sept. 22, 2022, 1:13 p.m. UTC | #1
On Thu, 22 Sept 2022 at 15:08, Chen Zhongjin <chenzhongjin@huawei.com> 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@redhat.com>
> Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com>
> Reviewed-by: Mark Brown <broonie@kernel.org>

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.


> ---
>  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
>
Chen Zhongjin Sept. 22, 2022, 2:25 p.m. UTC | #2
Hi,

On 2022/9/22 21:13, Ard Biesheuvel wrote:
> On Thu, 22 Sept 2022 at 15:08, Chen Zhongjin <chenzhongjin@huawei.com> 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@redhat.com>
>> Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com>
>> Reviewed-by: Mark Brown <broonie@kernel.org>
> 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
>>
diff mbox series

Patch

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