Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

-19
-19
arch/x86/boot/compressed/mem_encrypt.S
··· 25 25 push %ebx 26 26 push %ecx 27 27 push %edx 28 - push %edi 29 - 30 - /* 31 - * RIP-relative addressing is needed to access the encryption bit 32 - * variable. Since we are running in 32-bit mode we need this call/pop 33 - * sequence to get the proper relative addressing. 34 - */ 35 - call 1f 36 - 1: popl %edi 37 - subl $1b, %edi 38 - 39 - movl enc_bit(%edi), %eax 40 - cmpl $0, %eax 41 - jge .Lsev_exit 42 28 43 29 /* Check if running under a hypervisor */ 44 30 movl $1, %eax ··· 55 69 56 70 movl %ebx, %eax 57 71 andl $0x3f, %eax /* Return the encryption bit location */ 58 - movl %eax, enc_bit(%edi) 59 72 jmp .Lsev_exit 60 73 61 74 .Lno_sev: 62 75 xor %eax, %eax 63 - movl %eax, enc_bit(%edi) 64 76 65 77 .Lsev_exit: 66 - pop %edi 67 78 pop %edx 68 79 pop %ecx 69 80 pop %ebx ··· 96 113 ENDPROC(set_sev_encryption_mask) 97 114 98 115 .data 99 - enc_bit: 100 - .int 0xffffffff 101 116 102 117 #ifdef CONFIG_AMD_MEM_ENCRYPT 103 118 .balign 8