x86/asm: Annotate relocate_kernel_{32,64}.c
There are functions in relocate_kernel_{32,64}.c which are not
annotated. This makes automatic annotations on them rather hard. So
annotate all the functions now.
Note that these are not C-like functions, so FUNC is not used. Instead
CODE markers are used. Also the functions are not aligned, so the
NOALIGN versions are used:
- SYM_CODE_START_NOALIGN
- SYM_CODE_START_LOCAL_NOALIGN
- SYM_CODE_END
The result is:
  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>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Alexios Zavras <alexios.zavras@intel.com>
Cc: Allison Randal <allison@lohutok.net>
Cc: Enrico Weigelt <info@metux.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: linux-arch@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20191011115108.12392-4-jslaby@suse.cz
			
			
This commit is contained in:
		
							parent
							
								
									37503f734e
								
							
						
					
					
						commit
						6ec2a96824
					
				@ -35,8 +35,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
 | 
			
		||||
@ -93,8 +92,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 */
 | 
			
		||||
@ -191,8 +191,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
 | 
			
		||||
@ -208,9 +209,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
 | 
			
		||||
@ -270,6 +272,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
 | 
			
		||||
 | 
			
		||||
@ -38,8 +38,7 @@
 | 
			
		||||
	.text
 | 
			
		||||
	.align PAGE_SIZE
 | 
			
		||||
	.code64
 | 
			
		||||
	.globl relocate_kernel
 | 
			
		||||
relocate_kernel:
 | 
			
		||||
SYM_CODE_START_NOALIGN(relocate_kernel)
 | 
			
		||||
	/*
 | 
			
		||||
	 * %rdi indirection_page
 | 
			
		||||
	 * %rsi page_list
 | 
			
		||||
@ -103,8 +102,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 */
 | 
			
		||||
@ -209,8 +209,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
 | 
			
		||||
@ -228,9 +229,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
 | 
			
		||||
@ -283,6 +285,7 @@ swap_pages:
 | 
			
		||||
	jmp	0b
 | 
			
		||||
3:
 | 
			
		||||
	ret
 | 
			
		||||
SYM_CODE_END(swap_pages)
 | 
			
		||||
 | 
			
		||||
	.globl kexec_control_code_size
 | 
			
		||||
.set kexec_control_code_size, . - relocate_kernel
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user