mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 21:45:45 +02:00
x86/sev: Avoid using __x86_return_thunk
commit 0ee9073000 upstream.
Specifically, it's because __enc_copy() encrypts the kernel after
being relocated outside the kernel in sme_encrypt_execute(), and the
RET macro's jmp offset isn't amended prior to execution.
Signed-off-by: Kim Phillips <kim.phillips@amd.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d6eb50e9b7
commit
5b2edaf709
|
|
@ -65,7 +65,9 @@ SYM_FUNC_START(sme_encrypt_execute)
|
||||||
movq %rbp, %rsp /* Restore original stack pointer */
|
movq %rbp, %rsp /* Restore original stack pointer */
|
||||||
pop %rbp
|
pop %rbp
|
||||||
|
|
||||||
RET
|
/* Offset to __x86_return_thunk would be wrong here */
|
||||||
|
ret
|
||||||
|
int3
|
||||||
SYM_FUNC_END(sme_encrypt_execute)
|
SYM_FUNC_END(sme_encrypt_execute)
|
||||||
|
|
||||||
SYM_FUNC_START(__enc_copy)
|
SYM_FUNC_START(__enc_copy)
|
||||||
|
|
@ -151,6 +153,8 @@ SYM_FUNC_START(__enc_copy)
|
||||||
pop %r12
|
pop %r12
|
||||||
pop %r15
|
pop %r15
|
||||||
|
|
||||||
RET
|
/* Offset to __x86_return_thunk would be wrong here */
|
||||||
|
ret
|
||||||
|
int3
|
||||||
.L__enc_copy_end:
|
.L__enc_copy_end:
|
||||||
SYM_FUNC_END(__enc_copy)
|
SYM_FUNC_END(__enc_copy)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user