|
@@ -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
|