aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/boot/compressed/mem_encrypt.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/boot/compressed/mem_encrypt.S')
-rw-r--r--arch/x86/boot/compressed/mem_encrypt.S17
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/x86/boot/compressed/mem_encrypt.S b/arch/x86/boot/compressed/mem_encrypt.S
index 54f5f6625a73..eaa843a52907 100644
--- a/arch/x86/boot/compressed/mem_encrypt.S
+++ b/arch/x86/boot/compressed/mem_encrypt.S
@@ -88,9 +88,7 @@ ENTRY(get_sev_encryption_bit)
ENDPROC(get_sev_encryption_bit)
.code64
-ENTRY(get_sev_encryption_mask)
- xor %rax, %rax
-
+ENTRY(set_sev_encryption_mask)
#ifdef CONFIG_AMD_MEM_ENCRYPT
push %rbp
push %rdx
@@ -101,9 +99,7 @@ ENTRY(get_sev_encryption_mask)
testl %eax, %eax
jz .Lno_sev_mask
- xor %rdx, %rdx
- bts %rax, %rdx /* Create the encryption mask */
- mov %rdx, %rax /* ... and return it */
+ bts %rax, sme_me_mask(%rip) /* Create the encryption mask */
.Lno_sev_mask:
movq %rbp, %rsp /* Restore original stack pointer */
@@ -112,9 +108,16 @@ ENTRY(get_sev_encryption_mask)
pop %rbp
#endif
+ xor %rax, %rax
ret
-ENDPROC(get_sev_encryption_mask)
+ENDPROC(set_sev_encryption_mask)
.data
enc_bit:
.int 0xffffffff
+
+#ifdef CONFIG_AMD_MEM_ENCRYPT
+ .balign 8
+GLOBAL(sme_me_mask)
+ .quad 0
+#endif