From: Jiri Slaby <jslaby@suse.cz>
To: mingo@redhat.com
Cc: tglx@linutronix.de, hpa@zytor.com, x86@kernel.org,
jpoimboe@redhat.com, linux-kernel@vger.kernel.org,
Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 03/10] x86: boot, annotate functions properly
Date: Fri, 17 Feb 2017 11:47:50 +0100 [thread overview]
Message-ID: <20170217104757.28588-3-jslaby@suse.cz> (raw)
In-Reply-To: <20170217104757.28588-1-jslaby@suse.cz>
1) GLOBAL is meant for global symbols, but not functions. Use ENTRY
which is dedicated for global functions.
2) Finish every function with ENDPROC.
Note that efi_pe_entry is not a start of a function, it is the middle of
startup_64 -- annotate as such.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: <x86@kernel.org>
---
The alternative to the startup_64 change would be to move efi_pe_entry
out of startup_64 which actually makes more sense, but I am afraid I
cannot test the result properly. See what it is now:
.org 0x200
ENTRY(startup_64)
#ifdef CONFIG_EFI_STUB
jmp preferred_addr
GLOBAL(efi_pe_entry)
... ; a lot of assembly (efi_pe_entry)
leaq preferred_addr(%rax), %rax
jmp *%rax
preferred_addr:
#endif
... ; a lot of assembly (startup_64)
ENDPROC(startup_64)
What about:
.org 0x200
ENTRY(startup_64)
... ; a lot of assembly (startup_64)
ENDPROC(startup_64)
#ifdef CONFIG_EFI_STUB
ENTRY(efi_pe_entry)
... ; a lot of assembly (efi_pe_entry)
leaq startup_64(%rax), %rax
jmp *%rax
ENDPROC(efi_pe_entry)
#endif
This solution is at the end of the series as RFC.
---
arch/x86/boot/compressed/head_64.S | 3 ++-
arch/x86/boot/copy.S | 12 ++++++------
arch/x86/boot/pmjump.S | 4 ++--
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
index 4d85e600db78..59eccbc46ad7 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -250,7 +250,7 @@ ENTRY(startup_64)
*/
jmp preferred_addr
-ENTRY(efi_pe_entry)
+GLOBAL(efi_pe_entry)
movq %rcx, efi64_config(%rip) /* Handle */
movq %rdx, efi64_config+8(%rip) /* EFI System table pointer */
@@ -369,6 +369,7 @@ preferred_addr:
*/
leaq relocated(%rbx), %rax
jmp *%rax
+ENDPROC(startup_64)
#ifdef CONFIG_EFI_STUB
.org 0x390
diff --git a/arch/x86/boot/copy.S b/arch/x86/boot/copy.S
index 1eb7d298b47d..44133dd0218e 100644
--- a/arch/x86/boot/copy.S
+++ b/arch/x86/boot/copy.S
@@ -17,7 +17,7 @@
.code16
.text
-GLOBAL(memcpy)
+ENTRY(memcpy)
pushw %si
pushw %di
movw %ax, %di
@@ -33,7 +33,7 @@ GLOBAL(memcpy)
retl
ENDPROC(memcpy)
-GLOBAL(memset)
+ENTRY(memset)
pushw %di
movw %ax, %di
movzbl %dl, %eax
@@ -48,7 +48,7 @@ GLOBAL(memset)
retl
ENDPROC(memset)
-GLOBAL(copy_from_fs)
+ENTRY(copy_from_fs)
pushw %ds
pushw %fs
popw %ds
@@ -57,7 +57,7 @@ GLOBAL(copy_from_fs)
retl
ENDPROC(copy_from_fs)
-GLOBAL(copy_to_fs)
+ENTRY(copy_to_fs)
pushw %es
pushw %fs
popw %es
@@ -67,7 +67,7 @@ GLOBAL(copy_to_fs)
ENDPROC(copy_to_fs)
#if 0 /* Not currently used, but can be enabled as needed */
-GLOBAL(copy_from_gs)
+ENTRY(copy_from_gs)
pushw %ds
pushw %gs
popw %ds
@@ -76,7 +76,7 @@ GLOBAL(copy_from_gs)
retl
ENDPROC(copy_from_gs)
-GLOBAL(copy_to_gs)
+ENTRY(copy_to_gs)
pushw %es
pushw %gs
popw %es
diff --git a/arch/x86/boot/pmjump.S b/arch/x86/boot/pmjump.S
index 3e0edc6d2a20..6528f78a79b5 100644
--- a/arch/x86/boot/pmjump.S
+++ b/arch/x86/boot/pmjump.S
@@ -23,7 +23,7 @@
/*
* void protected_mode_jump(u32 entrypoint, u32 bootparams);
*/
-GLOBAL(protected_mode_jump)
+ENTRY(protected_mode_jump)
movl %edx, %esi # Pointer to boot_params table
xorl %ebx, %ebx
@@ -48,7 +48,7 @@ ENDPROC(protected_mode_jump)
.code32
.section ".text32","ax"
-GLOBAL(in_pm32)
+ENTRY(in_pm32)
# Set up data segments for flat 32-bit mode
movl %ecx, %ds
movl %ecx, %es
--
2.11.1
next prev parent reply other threads:[~2017-02-17 10:50 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-17 10:47 [PATCH 01/10] x86: assembly, ENTRY for fn, GLOBAL for data Jiri Slaby
2017-02-17 10:47 ` [PATCH 02/10] x86: assembly, use ENDPROC for functions Jiri Slaby
2017-02-17 10:47 ` Jiri Slaby
2017-02-17 11:08 ` Juergen Gross
2017-02-17 11:08 ` Juergen Gross
2017-02-17 10:47 ` Jiri Slaby [this message]
2017-02-17 10:47 ` [PATCH 04/10] linkage: introduce ENTRY_LOCAL Jiri Slaby
2017-02-17 10:47 ` [PATCH 05/10] x86: kernel, annotate local functions Jiri Slaby
2017-02-17 10:47 ` [PATCH 06/10] x86: crypto, " Jiri Slaby
2017-02-17 10:47 ` [PATCH 07/10] linkage: introduce ALIASes Jiri Slaby
2017-02-17 10:47 ` [PATCH 08/10] x86: assembly, annotate aliases Jiri Slaby
2017-02-17 10:47 ` Jiri Slaby
2017-02-17 11:52 ` Juergen Gross
2017-02-17 11:52 ` Juergen Gross
2017-02-17 10:47 ` [RFC 09/10] x86: boot, extract efi_pe_entry from startup_64 Jiri Slaby
2017-02-17 10:47 ` [PREVIEW 10/10] linkage: add .cfi_{start/end}proc to ENTRY/ENDPROC Jiri Slaby
2017-02-17 13:16 ` Josh Poimboeuf
2017-02-17 13:36 ` Jiri Slaby
2017-02-17 14:07 ` Josh Poimboeuf
2017-02-17 14:26 ` Jiri Slaby
2017-02-17 21:18 ` Josh Poimboeuf
2017-02-17 11:06 ` [PATCH 01/10] x86: assembly, ENTRY for fn, GLOBAL for data Juergen Gross
2017-02-17 11:06 ` Juergen Gross
2017-03-01 9:38 ` Ingo Molnar
2017-03-01 9:38 ` Ingo Molnar
2017-03-01 9:50 ` Jiri Slaby
2017-03-01 9:50 ` Jiri Slaby
2017-03-01 10:09 ` Thomas Gleixner
2017-03-01 10:09 ` Thomas Gleixner
2017-03-01 10:27 ` Ingo Molnar
2017-03-01 10:27 ` Ingo Molnar
2017-03-03 12:22 ` Jiri Slaby
2017-03-03 12:22 ` Jiri Slaby
2017-03-03 18:20 ` hpa
2017-03-03 18:20 ` hpa
2017-03-06 14:09 ` Jiri Slaby
2017-03-06 14:09 ` Jiri Slaby
2017-03-07 7:57 ` Ingo Molnar
2017-03-07 7:57 ` Ingo Molnar
2017-03-03 18:24 ` hpa
2017-03-03 18:24 ` hpa
2017-03-07 8:27 ` Ingo Molnar
2017-03-07 8:27 ` Ingo Molnar
2017-03-07 17:24 ` [RFC] linkage: new macros for functions and data Jiri Slaby
2017-03-07 17:24 ` Jiri Slaby
2017-03-16 8:02 ` Ingo Molnar
2017-03-16 8:02 ` Ingo Molnar
2017-03-16 8:13 ` Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 01/10] linkage: new macros for assembler symbols Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for data Jiri Slaby
2017-03-20 12:32 ` Jiri Slaby
2017-03-20 13:32 ` Josh Poimboeuf
2017-03-20 13:32 ` Josh Poimboeuf
2017-03-20 15:32 ` Jiri Slaby
2017-03-20 15:32 ` Jiri Slaby
2017-03-20 16:07 ` Josh Poimboeuf
2017-03-20 16:07 ` Josh Poimboeuf
2017-03-21 14:08 ` Pavel Machek
2017-03-21 14:08 ` Pavel Machek
2017-03-22 7:25 ` Ingo Molnar
2017-03-22 7:25 ` Ingo Molnar
2017-03-22 7:39 ` Jiri Slaby
2017-03-22 7:39 ` Jiri Slaby
2017-03-22 7:46 ` Ingo Molnar
2017-03-22 7:46 ` Ingo Molnar
2017-03-22 14:11 ` Josh Poimboeuf
2017-03-22 15:01 ` Jiri Slaby
2017-03-22 15:33 ` Josh Poimboeuf
2017-03-22 15:33 ` Josh Poimboeuf
2017-03-22 15:01 ` Jiri Slaby
2017-03-23 7:38 ` Ingo Molnar
2017-03-23 7:38 ` Ingo Molnar
2017-03-23 13:24 ` Josh Poimboeuf
2017-03-23 13:24 ` Josh Poimboeuf
2017-03-22 14:11 ` Josh Poimboeuf
2017-03-22 7:25 ` Ingo Molnar
2017-03-22 12:06 ` Jiri Slaby
2017-03-22 12:06 ` Jiri Slaby
2017-03-22 15:52 ` Pavel Machek
2017-03-22 15:52 ` Pavel Machek
2017-03-20 12:32 ` [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Jiri Slaby
2017-03-21 14:48 ` Josh Poimboeuf
2017-03-21 14:48 ` Josh Poimboeuf
2017-03-22 7:29 ` Ingo Molnar
2017-03-22 7:29 ` Ingo Molnar
2017-03-22 14:26 ` Josh Poimboeuf
2017-03-22 15:44 ` Jiri Slaby
2017-03-22 15:44 ` Jiri Slaby
2017-04-10 11:23 ` Jiri Slaby
2017-04-10 19:35 ` Josh Poimboeuf
2017-04-10 19:35 ` Josh Poimboeuf
2017-04-12 6:24 ` Jiri Slaby
2017-04-12 6:52 ` Ingo Molnar
2017-04-12 6:52 ` Ingo Molnar
2017-04-12 6:24 ` Jiri Slaby
2017-04-10 11:23 ` Jiri Slaby
2017-03-22 14:26 ` Josh Poimboeuf
2017-03-20 12:32 ` Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 04/10] x86: boot, annotate functions properly Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 05/10] x86: kernel+lib, annotate local functions Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 06/10] x86: crypto, " Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 07/10] x86: assembly, annotate aliases Jiri Slaby
2017-03-20 12:32 ` Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 08/10] x86: entry, annotate THUNKs Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 09/10] x86: entry, annotate interrupt symbols properly Jiri Slaby
2017-03-20 12:32 ` [RFC v2 10/10] x86: boot, extract efi_pe_entry from startup_64 Jiri Slaby
2017-03-20 12:32 ` [PATCH v2 01/10] linkage: new macros for assembler symbols Jiri Slaby
2017-03-16 8:13 ` [RFC] linkage: new macros for functions and data Jiri Slaby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170217104757.28588-3-jslaby@suse.cz \
--to=jslaby@suse.cz \
--cc=hpa@zytor.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.