mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
x86/kexec: Make relocate_kernel_64.S objtool clean
Having fixed the biggest objtool issue in this file; fix up the rest and remove the exception. Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Miroslav Benes <mbenes@suse.cz> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Link: https://lkml.kernel.org/r/20200324160924.202621656@infradead.org
This commit is contained in:
parent
fc8bd77d64
commit
36cc552055
@ -28,7 +28,6 @@ KASAN_SANITIZE_dumpstack_$(BITS).o := n
|
||||
KASAN_SANITIZE_stacktrace.o := n
|
||||
KASAN_SANITIZE_paravirt.o := n
|
||||
|
||||
OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o := y
|
||||
OBJECT_FILES_NON_STANDARD_test_nx.o := y
|
||||
OBJECT_FILES_NON_STANDARD_paravirt_patch.o := y
|
||||
|
||||
|
@ -9,6 +9,8 @@
|
||||
#include <asm/kexec.h>
|
||||
#include <asm/processor-flags.h>
|
||||
#include <asm/pgtable_types.h>
|
||||
#include <asm/nospec-branch.h>
|
||||
#include <asm/unwind_hints.h>
|
||||
|
||||
/*
|
||||
* Must be relocatable PIC code callable as a C function
|
||||
@ -39,6 +41,7 @@
|
||||
.align PAGE_SIZE
|
||||
.code64
|
||||
SYM_CODE_START_NOALIGN(relocate_kernel)
|
||||
UNWIND_HINT_EMPTY
|
||||
/*
|
||||
* %rdi indirection_page
|
||||
* %rsi page_list
|
||||
@ -105,6 +108,7 @@ SYM_CODE_START_NOALIGN(relocate_kernel)
|
||||
SYM_CODE_END(relocate_kernel)
|
||||
|
||||
SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
|
||||
UNWIND_HINT_EMPTY
|
||||
/* set return address to 0 if not preserving context */
|
||||
pushq $0
|
||||
/* store the start address on the stack */
|
||||
@ -192,6 +196,7 @@ SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
|
||||
1:
|
||||
popq %rdx
|
||||
leaq PAGE_SIZE(%r10), %rsp
|
||||
ANNOTATE_RETPOLINE_SAFE
|
||||
call *%rdx
|
||||
|
||||
/* get the re-entry point of the peer system */
|
||||
@ -209,6 +214,7 @@ SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
|
||||
SYM_CODE_END(identity_mapped)
|
||||
|
||||
SYM_CODE_START_LOCAL_NOALIGN(virtual_mapped)
|
||||
UNWIND_HINT_EMPTY
|
||||
movq RSP(%r8), %rsp
|
||||
movq CR4(%r8), %rax
|
||||
movq %rax, %cr4
|
||||
@ -230,6 +236,7 @@ SYM_CODE_END(virtual_mapped)
|
||||
|
||||
/* Do the copies */
|
||||
SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
|
||||
UNWIND_HINT_EMPTY
|
||||
movq %rdi, %rcx /* Put the page_list in %rcx */
|
||||
xorl %edi, %edi
|
||||
xorl %esi, %esi
|
||||
|
Loading…
Reference in New Issue
Block a user