forked from Minki/linux
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Thomas writes: "A single fix for the AMD memory encryption boot code so it does not read random garbage instead of the cached encryption bit when a kexec kernel is allocated above the 32bit address limit." * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/boot: Fix kexec booting failure in the SEV bit detection code
This commit is contained in:
commit
e75417739b
@ -25,20 +25,6 @@ ENTRY(get_sev_encryption_bit)
|
|||||||
push %ebx
|
push %ebx
|
||||||
push %ecx
|
push %ecx
|
||||||
push %edx
|
push %edx
|
||||||
push %edi
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RIP-relative addressing is needed to access the encryption bit
|
|
||||||
* variable. Since we are running in 32-bit mode we need this call/pop
|
|
||||||
* sequence to get the proper relative addressing.
|
|
||||||
*/
|
|
||||||
call 1f
|
|
||||||
1: popl %edi
|
|
||||||
subl $1b, %edi
|
|
||||||
|
|
||||||
movl enc_bit(%edi), %eax
|
|
||||||
cmpl $0, %eax
|
|
||||||
jge .Lsev_exit
|
|
||||||
|
|
||||||
/* Check if running under a hypervisor */
|
/* Check if running under a hypervisor */
|
||||||
movl $1, %eax
|
movl $1, %eax
|
||||||
@ -69,15 +55,12 @@ ENTRY(get_sev_encryption_bit)
|
|||||||
|
|
||||||
movl %ebx, %eax
|
movl %ebx, %eax
|
||||||
andl $0x3f, %eax /* Return the encryption bit location */
|
andl $0x3f, %eax /* Return the encryption bit location */
|
||||||
movl %eax, enc_bit(%edi)
|
|
||||||
jmp .Lsev_exit
|
jmp .Lsev_exit
|
||||||
|
|
||||||
.Lno_sev:
|
.Lno_sev:
|
||||||
xor %eax, %eax
|
xor %eax, %eax
|
||||||
movl %eax, enc_bit(%edi)
|
|
||||||
|
|
||||||
.Lsev_exit:
|
.Lsev_exit:
|
||||||
pop %edi
|
|
||||||
pop %edx
|
pop %edx
|
||||||
pop %ecx
|
pop %ecx
|
||||||
pop %ebx
|
pop %ebx
|
||||||
@ -113,8 +96,6 @@ ENTRY(set_sev_encryption_mask)
|
|||||||
ENDPROC(set_sev_encryption_mask)
|
ENDPROC(set_sev_encryption_mask)
|
||||||
|
|
||||||
.data
|
.data
|
||||||
enc_bit:
|
|
||||||
.int 0xffffffff
|
|
||||||
|
|
||||||
#ifdef CONFIG_AMD_MEM_ENCRYPT
|
#ifdef CONFIG_AMD_MEM_ENCRYPT
|
||||||
.balign 8
|
.balign 8
|
||||||
|
Loading…
Reference in New Issue
Block a user