From: Jiri Slaby <jslaby@suse.cz>
To: mingo@redhat.com
Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
Jiri Slaby <jslaby@suse.cz>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Subject: [PATCH v6 04/28] x86/asm: annotate relocate_kernel
Date: Fri, 18 May 2018 11:16:57 +0200 [thread overview]
Message-ID: <20180518091721.7604-5-jslaby@suse.cz> (raw)
In-Reply-To: <20180518091721.7604-1-jslaby@suse.cz>
There are functions in relocate_kernel which are not annotated. This
makes automatic annotations rather hard. So annotate all the functions
now.
Note that these are not C-like functions, so we do not use FUNC, but
CODE markers. Also they are not aligned, so we use the NOALIGN versions:
- SYM_CODE_START_NOALIGN
- SYM_CODE_START_LOCAL_NOALIGN
- SYM_CODE_END
In return, we get:
0000 108 NOTYPE GLOBAL DEFAULT 1 relocate_kernel
006c 165 NOTYPE LOCAL DEFAULT 1 identity_mapped
0146 127 NOTYPE LOCAL DEFAULT 1 swap_pages
0111 53 NOTYPE LOCAL DEFAULT 1 virtual_mapped
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
---
arch/x86/kernel/relocate_kernel_32.S | 13 ++++++++-----
arch/x86/kernel/relocate_kernel_64.S | 13 ++++++++-----
2 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S
index 77630d57e7bf..74d7891fc026 100644
--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -37,8 +37,7 @@
#define CP_PA_BACKUP_PAGES_MAP DATA(0x1c)
.text
- .globl relocate_kernel
-relocate_kernel:
+SYM_CODE_START_NOALIGN(relocate_kernel)
/* Save the CPU context, used for jumping back */
pushl %ebx
@@ -95,8 +94,9 @@ relocate_kernel:
addl $(identity_mapped - relocate_kernel), %eax
pushl %eax
ret
+SYM_CODE_END(relocate_kernel)
-identity_mapped:
+SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
/* set return address to 0 if not preserving context */
pushl $0
/* store the start address on the stack */
@@ -193,8 +193,9 @@ identity_mapped:
addl $(virtual_mapped - relocate_kernel), %eax
pushl %eax
ret
+SYM_CODE_END(identity_mapped)
-virtual_mapped:
+SYM_CODE_START_LOCAL_NOALIGN(virtual_mapped)
movl CR4(%edi), %eax
movl %eax, %cr4
movl CR3(%edi), %eax
@@ -210,9 +211,10 @@ virtual_mapped:
popl %esi
popl %ebx
ret
+SYM_CODE_END(virtual_mapped)
/* Do the copies */
-swap_pages:
+SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
movl 8(%esp), %edx
movl 4(%esp), %ecx
pushl %ebp
@@ -272,6 +274,7 @@ swap_pages:
popl %ebx
popl %ebp
ret
+SYM_CODE_END(swap_pages)
.globl kexec_control_code_size
.set kexec_control_code_size, . - relocate_kernel
diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
index 11eda21eb697..beb78767a5b3 100644
--- a/arch/x86/kernel/relocate_kernel_64.S
+++ b/arch/x86/kernel/relocate_kernel_64.S
@@ -40,8 +40,7 @@
.text
.align PAGE_SIZE
.code64
- .globl relocate_kernel
-relocate_kernel:
+SYM_CODE_START_NOALIGN(relocate_kernel)
/*
* %rdi indirection_page
* %rsi page_list
@@ -105,8 +104,9 @@ relocate_kernel:
addq $(identity_mapped - relocate_kernel), %r8
pushq %r8
ret
+SYM_CODE_END(relocate_kernel)
-identity_mapped:
+SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
/* set return address to 0 if not preserving context */
pushq $0
/* store the start address on the stack */
@@ -211,8 +211,9 @@ identity_mapped:
movq $virtual_mapped, %rax
pushq %rax
ret
+SYM_CODE_END(identity_mapped)
-virtual_mapped:
+SYM_CODE_START_LOCAL_NOALIGN(virtual_mapped)
movq RSP(%r8), %rsp
movq CR4(%r8), %rax
movq %rax, %cr4
@@ -230,9 +231,10 @@ virtual_mapped:
popq %rbp
popq %rbx
ret
+SYM_CODE_END(virtual_mapped)
/* Do the copies */
-swap_pages:
+SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
movq %rdi, %rcx /* Put the page_list in %rcx */
xorl %edi, %edi
xorl %esi, %esi
@@ -285,6 +287,7 @@ swap_pages:
jmp 0b
3:
ret
+SYM_CODE_END(swap_pages)
.globl kexec_control_code_size
.set kexec_control_code_size, . - relocate_kernel
--
2.16.3
next prev parent reply other threads:[~2018-05-18 9:17 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-18 9:16 [PATCH v6 00/28] New macros for assembler symbols Jiri Slaby
2018-05-18 9:16 ` [PATCH v6 01/28] linkage: new " Jiri Slaby
2018-05-18 9:16 ` Jiri Slaby
2018-05-18 9:16 ` [PATCH v6 02/28] x86/asm/suspend: drop ENTRY from local data Jiri Slaby
2018-05-18 10:03 ` Rafael J. Wysocki
2018-05-19 19:42 ` Pavel Machek
2018-05-18 9:16 ` [PATCH v6 03/28] x86/asm/suspend: use SYM_DATA for data Jiri Slaby
2018-05-18 10:03 ` Rafael J. Wysocki
2018-05-19 19:42 ` Pavel Machek
2018-05-18 9:16 ` Jiri Slaby [this message]
2018-05-18 9:16 ` [PATCH v6 05/28] x86/asm/entry: annotate THUNKs Jiri Slaby
2018-05-18 9:16 ` [PATCH v6 06/28] x86/asm: annotate local pseudo-functions Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 07/28] x86/asm/crypto: annotate local functions Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 08/28] x86/boot/compressed: " Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 09/28] x86/asm: annotate aliases Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 10/28] x86/asm/entry: annotate interrupt symbols properly Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 11/28] x86/asm/head: annotate data appropriatelly Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 12/28] x86/boot/compressed: " Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 13/28] um: " Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 14/28] xen/pvh: " Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 15/28] x86/asm/purgatory: start using annotations Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 16/28] x86/asm: do not annotate functions by GLOBAL Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 17/28] x86/asm: use SYM_INNER_LABEL instead of GLOBAL Jiri Slaby
2018-05-18 19:41 ` Andy Lutomirski
2018-05-19 7:44 ` Ingo Molnar
2018-05-21 7:13 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 18/28] x86/asm/realmode: use SYM_DATA_* " Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 19/28] x86/asm: kill the last GLOBAL user and remove the macro Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 20/28] x86/asm: make some functions local Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 21/28] x86/asm/ftrace: mark function_hook as function Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 22/28] x86_64/asm: add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 23/28] x86_64/asm: change all ENTRY+END to SYM_CODE_* Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 24/28] x86_64/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 25/28] x86_32/asm: add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2018-05-18 9:17 ` Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 26/28] x86_32/asm: change all ENTRY+END to SYM_CODE_* Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 27/28] x86_32/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2018-05-18 9:17 ` [PATCH v6 28/28] x86/asm: replace WEAK uses by SYM_INNER_LABEL 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=20180518091721.7604-5-jslaby@suse.cz \
--to=jslaby@suse.cz \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--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.